Java Throwable initCause()方法与示例
Throwable类initCause()方法
initCause()方法在java.lang包中可用。
initCause()方法用于将该throwable的原因实例化为给定值,并且在我们抛出一个throwable对象之后立即在构造函数中调用此方法。
initCause()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
initCause()方法可能会在初始化原因时引发异常。
IllegalArgumentException-如果给定参数是此对象,则可能引发此异常。
IllegalStateException-当使用throwable创建给定参数时或在此throwable上已经调用此方法时,可能会引发此异常。
语法:
public Throwable initCause(Throwable caus);
参数:
可getCause()抛出的原因-表示使用方法检索的原因,如果返回null,则原因不存在或未知。
返回值:
该方法的返回类型为Throwable,它返回对该“Throwable”对象的引用。
示例
//Java程序演示示例
//Throwable initCause(Throwable因果关系)
//Throwable方法
public class InitCause {
public static void main(String args[]) throws Exception {
try {
//调用div()方法
div(100, 0);
} catch (ArithmeticException ex) {
//显示异常原因的原因
//抛出
System.out.println("Exception Cause:" + ex.getCause());
}
}
//此方法将两个数相除,然后
//引发异常
public static void div(int d1, int d2) throws Exception {
try {
int res = d1 / d2;
} catch (ArithmeticException ex) {
//创建一个异常
ArithmeticException ae = new ArithmeticException();
//实例化异常原因
//initCause()方法
ae.initCause(ex);
//引发异常 with its cause
throw (ae);
}
}
}输出结果
Exception Cause:java.lang.ArithmeticException: / by zero