Bil*_*ill 5 java exception-handling nullpointerexception
我已经尝试在普遍的情况下调用此异常,默认情况下在我的应用程序中调用:
String causeClass = e.getCause().getClass().getName();
Run Code Online (Sandbox Code Playgroud)
但我得到了NullPointerException.
有没有一种安全的方法来查找原因并获取原因异常的类名?
正如JustinKSU指出的那样,有时候没有原因.来自Throwable#getCause():
返回此throwable的原因,如果原因不存在或未知,则返回null.(原因是导致抛出此抛掷物的抛掷物.)
发生这种情况时,getCause()返回null,因此NullPointerException在您调用时抛出一个getClass().也许你可以用它代替:
Throwable t = e.getClause();
String causeClass = t == null ? "Unknown" : t.getClass().getName();
Run Code Online (Sandbox Code Playgroud)
但是,出于调试目的,我发现e.printStackTrace()要好得多.这样,您可以看到抛出异常的确切位置.以下是典型的输出printStackTrace():
java.lang.NullPointerException
at MyClass.mash(MyClass.java:9)
at MyClass.crunch(MyClass.java:6)
at MyClass.main(MyClass.java:3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1631 次 |
| 最近记录: |