Javaの基本:異常なキャプチャ順

 :で再現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節の間の関係を持っていません。
 

おすすめ

転載: blog.csdn.net/qq_28817739/article/details/85106837