- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我已经尝试在我的整个应用程序中普遍地和默认地在异常情况下调用它:
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/
我正在使用 Sympy 重现 Mathematica 结果,而我是后者的新手,所以我可能做错了。然而,我注意到一些使用 Mathematica 最多只需要一分钟的东西在 sympy 中会花费很长时间(
Kubernetes 有一个相当复杂的网络模型,它似乎是基于规避 Docker 默认网络的一个关键缺陷: 默认情况下,Docker 容器无法直接从外部世界联系,因为它们的 IP 地址对于它们所在的子网
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
以下类型检查: instance (Applicative f, Alternative f, Foldable f) => Monad f where (>>=) = flip $ \f ->
我是一名优秀的程序员,十分优秀!