第14章-私はもう勉強を終えたと思いますが、重要な例外があります.
例外
try文で宣言すると使えなくなります.
catchブロックに異常発生に関連するブロックがない場合、異常発生時にスレッドが終了します.したがって,最後のcatchブロックをExceptionクラスにバインドする習慣を身につけてこそ,安全なプログラムになることができる.
public void multicatch(){
int[] intArray = new int[5];
try{
System.out.println(intArray[5]);
} catch (ArrayIndexOutOfBoundsException e){
System.out.println("ArrayIndexOutOfBoundsException occurred");
} catch (Exception e){
System.out.println(intArray.length);
}
}
출력
ArrayIndexOutOfBoundsException occurred
上記の例では、2つのcatch文の順序を変更するとコンパイルエラーが発生します.
Exceptionクラスはすべてのクラスの親であるため、ArrayIndexOutOfBoundsExceptionクラスはExceptionクラスの子である.親例外クラスが取得され、子クラスが取得された場合、子クラスは例外を処理できず、コンパイルエラーが発生します.
例外タイプ
checked exception
error
運転時異常または未検査異常
ExceptionとErrorクラスはjavaです.lang.Throwableクラスは継承可能なので、ExceptionやErrorの処理においてもThrowable処理は関係ありません.
このような継承関係があるのは,Exception,Errorクラスは異なる性質を持つが,同名の方法で処理できるためである.
getMessage()よりも詳細に例外クラス名を指定します.
throws
異常の原因
tryブロックでthrowを宣言すると、開発者は例外クラスのオブジェクトを作成または作成します.throw文の後のtryブロックの文は実行されずcatchブロックに移動します.
catchブロックにthrowの例外と同じまたは継承関係の例外がある場合は、そのブロックで例外を処理できます.
throws
public void throwsException(int number) throws Exception {
if(number>12)
throw new Exception("Number is over than 12");
System.out.println("Number is " + number);
}
catch文では、処理方法を明確に宣言する必要があります.
throwを利用して例外を投げ出してこそ、問題が発生した正確な原因を見つけることができる.
Reference
この問題について(第14章-私はもう勉強を終えたと思いますが、重要な例外があります.), 我々は、より多くの情報をここで見つけました https://velog.io/@always/자바의-신-14장-다-배운-것-같지만-예외라는-중요한-것이-있어요テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol