在 try catch 中使用 Throwable 和 Exception 之间的区别
-
20-09-2019 - |
题
有时我看到
try {
} catch(Throwable e) {
}
有时
try {
} catch(Exception e) {
}
有什么不同
解决方案
通过捕获Throwable
它包括的东西,子类Error
。通常你应该这样做,除非是在最高“包罗万象的”要记录或以其他方式处理绝对一切可能出错线程的水平。这将是一个框架型应用较为典型的(例如应用程序服务器或一个测试框架),它可以运行未知代码,不应受到影响的任何的是去错代码,尽可能。
其他提示
Throwable
是超类Exception
的以及Error
。在正常情况下,我们应该总是赶Exception
的子类,从而使根本原因不迷路。
在这里你看到的事情出错这是不是在你的Java代码控制可能性特殊情况下,你应该抓住Error
或Throwable
。
记得捕捉的Throwable到本机库未装载标志。
Thowable
捕捉真是应有尽有,甚至其中的ThreadDeath被默认情况下抛出,从现在已经过时Thread.stop()
方法停止线程。因此,通过捕捉Throwable
你可以肯定,你永远不会离开try块,而无需通过你的catch块至少要去,但你应该准备也处理OutOfMemoryError
和InternalError
或StackOverflowError
。
捕Throwable
是外部服务器最有用的循环,即代表各种请求外部的代码,但本身从来没有终止,以保持服务活着。
不隶属于 StackOverflow