此try-catch块不会捕获哪些错误条件?
try
{
//some codes
}
catch (Exception e)
{
//log error
}
背景:
我实现了一个运行外部可执行文件的服务器(ProcessBuilder
)。所以基本上,我不希望try块中的错误杀死服务器。捕获Throwable
可能是更好的选择,但我想知道还有什么可以逃脱Exception
或更强大的替代品(如果有的话)。谢谢!
答案 0 :(得分:1)
任何不是Exception
的东西。
查看https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html以了解Javas自己的例外(您可以通过扩展Exception
类来创建自己的例外)。
请注意Error
和Exception
之间存在差异。
https://docs.oracle.com/javase/7/docs/api/java/lang/Error.html
另外,您打算如何从所有中恢复存在的异常? 如果抛出异常,则表示您已经达到了一个非常错误的状态。不知道错误是什么,实际上很难恢复,使您的服务器处于非功能状态。因此,虽然您的服务器在您看到异常的意义上并没有死亡(并且可以追溯到哪里出错),但您无论如何都很可能处于非功能状态。
如果您还没有这样做,请查看https://docs.oracle.com/javase/tutorial/essential/exceptions/以处理例外情况。或者阅读它以供复习。