gpt4 book ai didi

java - NullPointerException:难道不是每个异常都包含原因吗?

转载 作者:搜寻专家 更新时间:2023-10-31 19:41:26 24 4
gpt4 key购买 nike

我已经尝试在我的整个应用程序中普遍地和默认地在异常情况下调用它:

String causeClass = e.getCause().getClass().getName();

但是我收到了 NullPointerException

是否有一种安全的方法来查找原因并获取原因异常的类名?

最佳答案

正如 JustinKSU 所指出的,有时没有原因。来自 Throwable#getCause() :

Returns the cause of this throwable or null if the cause is nonexistent or unknown. (The cause is the throwable that caused this throwable to get thrown.)

发生这种情况时,getCause() 返回 null,因此在调用 getClass() 时抛出 NullPointerException >。也许您可以改用它:

Throwable t = e.getClause();
String causeClass = t == null ? "Unknown" : t.getClass().getName();

但是,出于调试目的,我找到了 e.printStackTrace()变得更好。这样,您就可以看到异常抛出的确切位置。以下是 printStackTrace() 的典型输出:

 java.lang.NullPointerException
at MyClass.mash(MyClass.java:9)
at MyClass.crunch(MyClass.java:6)
at MyClass.main(MyClass.java:3)

关于java - NullPointerException:难道不是每个异常都包含原因吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6932637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com