由于各种原因System.exit
,在编写Java应用程序时,调用是不受欢迎的,那么如何通知调用进程并非所有内容都按计划进行?
编辑: 1表示standin
任何非零退出代码.
采用System.exit
较大的Java应用程序(服务器)的时候,"应用程序"是一个真正的子应用是不可取的(如小服务程序,小应用程序):在这种情况下,System.exit
可能停止JVM,因此也是所有其他的子应用程序.在这种情况下,抛出适当的异常(可以由应用程序框架/服务器捕获和处理)是最佳选择.
如果java应用程序真的要作为独立应用程序运行,那么使用它没有任何问题System.exit
.在这种情况下,设置退出值可能是向父进程传达失败或成功的最简单(也是最常用)的方式.
我同意" 抛出异常 "的人群.一个原因是,如果您希望其他代码能够使用它,则调用System.exit会使您的代码难以使用.例如,如果您发现您的类在Web应用程序或某种消息消费应用程序中很有用,那么允许这些容器以某种方式处理故障将会很有用.容器可能想要重试操作,决定记录并忽略该问题,向管理员发送电子邮件等.
一个例外是你的main()
方法; 这可以捕获异常,并调用System.exit()
一些可以被调用进程或shell脚本识别的值.