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
翻译自: https://www.includehelp.com/java/throwable-initcause-method-with-example.aspx