【发布时间】:2015-08-17 06:34:03
【问题描述】:
我的 java 应用程序中有一组错误代码。目前我正在使用System.exit(code); 将错误代码从应用程序返回到外部应用程序。
System.exit 是否有任何替代品,因为使用它是不好的做法,因为它可能会关闭整个 JVM。
【问题讨论】:
-
你的问题没有意义。将代码返回给外部应用程序的唯一方法是作为进程退出代码。
-
它会关闭JVM,但是如果你想要退出,为什么会有问题呢?
-
System.exit()是退出应用程序的“坏”方式。许多静态分析工具都强调它。原因是您在退出之前可能没有清理所有内容。对于用户来说,这也可能是相当令人困惑的。在我看来,你“应该”使用它的唯一原因(在正常情况下)是如果你想向 shell 返回一个退出代码。 -
我刚刚想到了它不好的另一个原因:可重用性。如果你的代码中充满了
System.exit(),它可能会给想要在更大的应用程序中使用你的代码的人带来问题。就像goto一样,它可以用作结束您的应用程序的捷径,而无需干净地展开您的堆栈。最后,如果有人想使用你的代码,他们不仅需要删除你所有的System.exit(),而且他们可能还需要重构你的代码!
标签: java system.exit