Javaチェーン異常
12303 ワード
Javaチェーン異常
jdk 1.4開始
チェーン異常により、異常に別の異常を関連付けることができます.2番目のフィールドは、1番目の異常の原因(現在の異常の原因を記述する異常)を記述する.
eg:ある方法がゼロを除去しようとしてarithmetiException異常を投げ出したと仮定し、問題が発生した実際の原因はゼロを除去する異常ではない.I/O異常です.このエラーにより、除数に不正な値が設定されます.
チェーン異常を使用してThrowableのコンストラクション関数に追加しました
Throwable(Throwable causeExc)
Throwable(String msg,Throwable causeeXC)
1つ目の形式では、causeExcは現在の異常を引き起こす異常であり、causeExcは現在のシーンを引き起こす背後にある原因である.
第2の形態では、異常を引き起こすことを指定しながら、1つのフィールドの記述を指定することができる.
————————この2つのコンストラクション関数は,異常クラスのError Exception RuntimeExceptionクラスにも導入されている.
APIメソッド
Throwable getCuse()
Throwable initCause(Throwable causeExc)
explain:
getCause():現在の異常を引き起こす異常を返し、異常がなければnullを返します
InitCause(Throwable causeExc):causeExcと呼び出しの例外を関連付けます.各例外のinitCause()メソッドは1回しか呼び出せません
code:
jdk 1.4開始
チェーン異常により、異常に別の異常を関連付けることができます.2番目のフィールドは、1番目の異常の原因(現在の異常の原因を記述する異常)を記述する.
eg:ある方法がゼロを除去しようとしてarithmetiException異常を投げ出したと仮定し、問題が発生した実際の原因はゼロを除去する異常ではない.I/O異常です.このエラーにより、除数に不正な値が設定されます.
チェーン異常を使用してThrowableのコンストラクション関数に追加しました
Throwable(Throwable causeExc)
Throwable(String msg,Throwable causeeXC)
1つ目の形式では、causeExcは現在の異常を引き起こす異常であり、causeExcは現在のシーンを引き起こす背後にある原因である.
第2の形態では、異常を引き起こすことを指定しながら、1つのフィールドの記述を指定することができる.
————————この2つのコンストラクション関数は,異常クラスのError Exception RuntimeExceptionクラスにも導入されている.
APIメソッド
Throwable getCuse()
Throwable initCause(Throwable causeExc)
explain:
getCause():現在の異常を引き起こす異常を返し、異常がなければnullを返します
InitCause(Throwable causeExc):causeExcと呼び出しの例外を関連付けます.各例外のinitCause()メソッドは1回しか呼び出せません
code:
package javastudyforexception;
/**
* Created by D9ing on 16/7/8.
*
*/
public class ChainExcDemo {
/**
*
*/
static void demoproc() throws NullPointerException {
NullPointerException nullPointerException = new NullPointerException("top layer");
//
nullPointerException.initCause(new ArithmeticException("cause"));
throw nullPointerException;
}
public static void main(String[] args) {
try {
demoproc();
} catch (NullPointerException e) {
System.out.println("caught" + e);
System.out.println("origin" + e.getCause());
}
}
}