The getCause()
method of the Throwable
class is used to retrieve the cause of a throwable, if any. This method is generally used to find the root cause of an error. If there are multiple causes for the error or exception, this method returns the innermost cause.
The declaration for the java.lang.Throwable.getCause()
method is:
public final Throwable getCause()
This method does not take any parameters.
The cause of this throwable or null if the cause is nonexistent or unknown.
This method does not throw any exception.
Let's look at a code example that demonstrates how a cause is set for the throwable and retrieved, using the getCause()
method.
class GetCauseDemo {public static void main(String args[]){try {int a[] = new int[5];a[-1] = 1;} catch (Exception e){Throwable t = new Throwable(" caused by access to invalid array length ",e);// printing the causeSystem.out.println("Cause is: "+t.getCause());}}}
In the code above, an exception is caused by accessing an invalid array length. The exception is then wrapped in a throwable and the cause of that throwable is printed using the getCause()
method.
This will produce the following result:
Cause is: java.lang.ArrayIndexOutOfBoundsException: -1
In this post, we saw the getCause()
method of Java. This method is generally used to find the root cause of an error. The method takes no parameters and does not throw any exception. The return type of this method is a Throwable
object that may be null if the cause is non-existent or unknown.