在什么条件下错误可以逃避使用Exception类的try-catch?

时间:2016-07-28 06:19:46

标签: java exception try-catch

此try-catch块不会捕获哪些错误条件?

    try
    {
       //some codes
    }
    catch (Exception e)
    {
       //log error
    }

背景: 我实现了一个运行外部可执行文件的服务器(ProcessBuilder)。所以基本上,我不希望try块中的错误杀死服务器。捕获Throwable可能是更好的选择,但我想知道还有什么可以逃脱Exception或更强大的替代品(如果有的话)。谢谢!

1 个答案:

答案 0 :(得分:1)

任何不是Exception的东西。

查看https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html以了解Javas自己的例外(您可以通过扩展Exception类来创建自己的例外)。

请注意ErrorException之间存在差异。 https://docs.oracle.com/javase/7/docs/api/java/lang/Error.html

另外,您打算如何从所有中恢复存在的异常? 如果抛出异常,则表示您已经达到了一个非常错误的状态。不知道错误是什么,实际上很难恢复,使您的服务器处于非功能状态。因此,虽然您的服务器在您看到异常的意义上并没有死亡(并且可以追溯到哪里出错),但您无论如何都很可能处于非功能状态。

如果您还没有这样做,请查看https://docs.oracle.com/javase/tutorial/essential/exceptions/以处理例外情况。或者阅读它以供复习。