在捕获应用程序停止异常时,我应该使用System.exit(1)吗?

时间:2015-08-13 15:33:30

标签: java exception exception-handling

说我有以下代码:

try {
    //Do something with File
} catch (FileNotFoundException e) {
    outputInfo("Error in IO Redirection", true);
    e.printStackTrace();
    System.exit(1);
}

我的程序在此catch位置之后立即退出,是一个单线程(一个主方法)程序,不应该期望从这样的异常中恢复。

真的是否应该使用System.exit(1);

2 个答案:

答案 0 :(得分:5)

如果您希望其他人运行您的程序,并且他们依赖过程状态代码来了解您的程序是成功还是失败,那么您应该使用System.exit(1);

http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#exit%28int%29

  

终止当前运行的Java虚拟机。争论   作为状态代码;按照惯例,非零状态代码   表示异常终止。

答案 1 :(得分:2)

在应用程序发生故障时使用非零退出代码的原因之一是它们可以在批处理文件中使用。如果您的应用程序是控制台应用程序,请始终使您不知道将来如何使用它。