Java 如果我的程序在执行失败时以状态1退出,那么如果执行成功,我是否还必须包含状态为0的退出?
我正在用Java编写一个程序,我需要确保我有正确的错误处理,也就是说,我需要遵循Java的标准约定,让程序以成功或不成功的状态退出 每当我“捕获”程序中的错误时,我都会包含一个Java 如果我的程序在执行失败时以状态1退出,那么如果执行成功,我是否还必须包含状态为0的退出?,java,error-handling,exit,Java,Error Handling,Exit,我正在用Java编写一个程序,我需要确保我有正确的错误处理,也就是说,我需要遵循Java的标准约定,让程序以成功或不成功的状态退出 每当我“捕获”程序中的错误时,我都会包含一个系统。退出(1)。现在我想知道我是否也需要在我的程序中提供一个系统。退出(0)?在这种情况下,我在程序中的什么位置添加状态为1的出口 谢谢。是和否 VM将在3种情况下关闭: 操作系统告诉它这样做;在posix术语中,因为它接收一个SITERM信号。如果在前台有jvm的终端中按CTRL+C,这就是工作原理。如果打开windo
系统。退出(1)
。现在我想知道我是否也需要在我的程序中提供一个系统。退出(0)
?在这种情况下,我在程序中的什么位置添加状态为1的出口
谢谢。是和否
VM将在3种情况下关闭:
kill-pidOfJavaProcess
,就会发生这种情况。当SIGKILLing通常无趣时,进程返回代码;通常是143(128+信号的int值),它询问的是你已经知道的信息:是的,它退出是因为你告诉它。你已经知道了
System.exit
命令它退出。是,按照惯例,返回0表示“成功”,否则返回非零
thread.setDaemon(true)
)。在这种情况下,VM决定无事可做并退出,错误代码为0
System.exit(0)
。但是,由于“让我们只等待所有线程退出”的模式往往会导致应用程序挂起,并且如果没有关机处理程序,“正确清理”无法完成(因为系统用户可以CTRL+C您的应用程序或将其杀死),您应该运行system.exit(0)
以减少代码必须处理的路由
那么,你一定要吗?不,你应该吗?是-因为这是一个好主意。如果您希望程序在某一点立即退出,请选择“是”。如果只是让程序正常完成,jvm将为您返回0。