:で再現https://blog.csdn.net/jiyiqinlovexx/article/details/46597899
voidtestExceptionパブリック(){
int型A [] = {1,2,3}; INT = Q 0;
試み{
ため(I = 0 int型; Iはa.lengthを<; Iは++){[I] / = Q;}
キャッチ}(はArithmeticException H){
System.out.print( "はArithmeticExceptionの\ N-")の; //実行
}キャッチ(例外E){
System.out.printの( "例外\ N-"); //実行されず、そしてArithmeticExceptionの後ろに配置する必要があります
/ **
*例外大きい範囲は背中にでなければならないだけでなく、
*と背中に実行されません(小さい方の前にある範囲
の意味が何をするかがあるように、傍受*異常) ???
* /
} {最後にSystem.out.print( "ついに\ N-")の;}
}
// <スパンのスタイル= "色:#3333ffの;">出力</ span>に
はArithmeticException
最後に
*ポイント1:はArithmeticExceptionはExceptionから継承されますが、例外が発生した場合にはArithmeticExceptionのが、
時間を*と捕らえ、それだけで実際に起こった例外をキャッチし、ではないExceptionクラスとその親理由
*例外がcatch節を実行します。
*ポイント2:あなたはcatch文への例外のcatch節のより広い範囲の前にあるとしよう。しかし、それが起こるのだろう
* catch節エラー「はArithmeticExceptionためUnreachablecatchブロックに到達することはできません。
* ITISはすでに「例外のためのcatchブロックによって処理します
*つまり、全く継承がない場合の異常(親)の広い範囲は、ClassNotFoundExceptionがように、背面に配置する必要があります
それは問題では*とはArithmeticExceptionのcatch節の間の関係を持っていません。