Java中的可抛出 getCause() 方法及示例
Throwable 类的getCause()方法是用于返回此 throwable 的原因的内置方法,如果无法确定发生异常的原因,则返回 null。此方法有助于获取由构造函数之一提供的原因或在使用 initCause(Throwable) 方法创建后设置的原因。 Throwable 类的所有 PrintStackTrace 方法都调用 getCause() 方法来确定 Throwable 或 Exception 的原因。简单来说,可以说这个方法返回了发生异常的原因。
句法:
public Throwable getCause()
返回值:此方法返回此 Throwable 的原因,如果无法确定原因,则返回null 。
下面的程序演示了 Throwable 类的 getCause() 方法:
示例 1:
// Java program to demonstrate
// the ensureCapacity() Method.
import java.io.*;
class GFG {
// Main Method
public static void main(String[] args)
throws Exception
{
try {
// divide the numbers
divide(2, 0);
}
catch (ArithmeticException e) {
System.out.println("Cause of Exception: "
+ e.getCause());
}
}
// method which divides two number
public static void divide(int a, int b)
throws Exception
{
try {
// divide two numbers
int i = a / b;
}
catch (ArithmeticException e) {
// initializing new Exception with cause
ArithmeticException exe = new ArithmeticException();
exe.initCause(e);
throw(exe);
}
}
}
输出:
Cause of Exception: java.lang.ArithmeticException: / by zero
示例 2:
// Java program to demonstrate
// the ensureCapacity() Method.
import java.io.*;
class GFG {
// Main Method
public static void main(String[] args)
throws Exception
{
try {
// divide the numbers
divide(2, 0);
}
catch (ArithmeticException e) {
System.out.println("Cause of Exception : "
+ e.getCause());
}
}
// method which divides two number
public static void divide(int a, int b)
throws Exception
{
// divide two numbers
int i = a / b;
}
}
输出:
Cause of Exception : null
参考:
https://docs.oracle.com/javase/10/docs/api/java Java()