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