Throwable类initCause()方法 (Throwable Class initCause() method)
-
initCause() Method is available in java.lang package.
initCause()方法在java.lang包中可用。
-
initCause() Method is used to instantiate the cause of this throwable to the given value and this method is invoked within the constructor immediately after that we throw a throwable object.
initCause()方法用于将此throwable的原因实例化为给定值,并且在我们抛出throwable对象之后立即在构造函数中调用此方法。
-
initCause() Method is a non-static method, it is accessible with the class object only and if we try to access the method with the class name then we will get an error.
initCause()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
-
initCause() Method may throw an exception at the time of initializing cause.
initCause()方法可能会在初始化原因时引发异常。
- IllegalArgumentException – This exception may throw when the given argument is this object.IllegalArgumentException-如果给定参数是此对象,则可能引发此异常。
- IllegalStateException – This exception may throw when the given argument was created with throwable or when this method called already on this throwable.IllegalStateException-当使用throwable创建给定参数时,或者在此throwable上已调用此方法时,可能会抛出此异常。
Syntax:
句法:
public Throwable initCause(Throwable caus);
Parameter(s):
参数:
-
Throwable caus – represents the cause it retrieve by using getCause() method and if it returns null then cause is non-existent or not known.
可抛出的原因-表示使用getCause()方法检索的原因,如果返回null,则原因不存在或未知。
Return value:
返回值:
The return type of the method is Throwable, it returns reference to this "Throwable" object.
方法的返回类型为Throwable ,它返回对此“ Throwable”对象的引用。
Example:
例:
-
// Java program to demonstrate the example
-
// of Throwable initCause(Throwable caus)
-
// method of Throwable
-
public class InitCause {
-
public static void main(String args[]) throws Exception {
-
try {
-
// calling div() method
-
div(100, 0);
-
} catch (ArithmeticException ex) {
-
// Display the exception cause why it is
-
//thrown
-
System.out.println("Exception Cause:" + ex.getCause());
-
}
-
}
-
// This method divide two numbers and will
-
// throw an exception
-
public static void div(int d1, int d2) throws Exception {
-
try {
-
int res = d1 / d2;
-
} catch (ArithmeticException ex) {
-
// creating an exception
-
ArithmeticException ae = new ArithmeticException();
-
// instantiate exception cause by using
-
//initCause() method
-
ae.initCause(ex);
-
// throw an exception with its cause
-
throw (ae);
-
}
-
}
-
}
Output
输出量
Exception Cause:java.lang.ArithmeticException: / by zero