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/lang/Throwable.html#getCause()
相关用法
- Java Throwable addSuppressed()用法及代码示例
- Java Throwable toString()用法及代码示例
- Java Throwable initCause()用法及代码示例
- Java Throwable getStackTrace()用法及代码示例
- Java Throwable getSuppressed()用法及代码示例
- Java Throwable setStackTrace()用法及代码示例
- Java Throwable getMessage()用法及代码示例
- Java Throwable printStackTrace()用法及代码示例
- Java Throwable getLocalizedMessage()用法及代码示例
- Java Throwable fillInStackTrace()用法及代码示例
- Java Java lang.Long.numberOfLeadingZeros()用法及代码示例
- Java Java lang.Long.highestOneBit()用法及代码示例
- Java Java.util.Collections.rotate()用法及代码示例
- Java Java lang.Long.byteValue()用法及代码示例
注:本文由纯净天空筛选整理自AmanSingh2210大神的英文原创作品 Throwable getCause() method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。