有时我看到

try {

} catch(Throwable e) {

}

有时

try {

} catch(Exception e) {

}

有什么不同

有帮助吗?

解决方案

通过捕获Throwable它包括的东西,子类Error。通常你应该这样做,除非是在最高“包罗万象的”要记录或以其他方式处理绝对一切可能出错线程的水平。这将是一个框架型应用较为典型的(例如应用程序服务器或一个测试框架),它可以运行未知代码,不应受到影响的任何的是去错代码,尽可能。

其他提示

第一个捕获了所有子类 Throwable (这包括 ExceptionError),第二个捕获了所有子类 Exception.

Error 以任何方式都无法以编程方式恢复,并且通常不会被捕获,除非用于日志记录目的(再次传递它)。 Exception 可以通过编程方式恢复。它的子类 RuntimeException 表示编程错误,通常也不会被捕获。

Throwable是超类Exception的以及Error。在正常情况下,我们应该总是赶Exception的子类,从而使根本原因不迷路。

在这里你看到的事情出错这是不是在你的Java代码控制可能性特殊情况下,你应该抓住ErrorThrowable

  

记得捕捉的Throwable到本机库未装载标志。

Thowable捕捉真是应有尽有,甚至其中的ThreadDeath被默认情况下抛出,从现在已经过时Thread.stop()方法停止线程。因此,通过捕捉Throwable你可以肯定,你永远不会离开try块,而无需通过你的catch块至少要去,但你应该准备也处理OutOfMemoryErrorInternalErrorStackOverflowError

Throwable是外部服务器最有用的循环,即代表各种请求外部的代码,但本身从来没有终止,以保持服务活着。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top