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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。