我有一个交互式 java 程序,它允许用户向服务器发送消息,它的行为有点像 shell,接受用户的键盘输入并执行各种操作。
例如
myProgram> send "Login as James" to server
我的程序将解析用户输入并执行操作,在这种情况下,它将向服务器发送消息“以 James 身份登录”。
我支持它的“退出”命令之一,它将关闭所有服务器连接,清理资源并关闭应用程序。处理这个退出命令的代码是
private void shutdown()
{
closeAllConnection();
cleanup();
System.out.println("Thank you for using the tool, have a nice day!");
System.exit(0);
}
当我对我的代码运行 findbug 时,会引发 DM_EXIT 错误
Bug: new myProgram.messagingTools.main(String[]) invokes System.exit(...), which shuts down the entire virtual machine
Pattern id: DM_EXIT, type: Dm, category: BAD_PRACTICE
Invoking System.exit shuts down the entire Java virtual machine. This should only been done when it is appropriate. Such calls make it hard or impossible for your code to be invoked by other code. Consider throwing a RuntimeException instead.
它抱怨 System.exit 不应该用于关闭程序。
有人对我应该如何“在我的程序收到'退出'命令时关闭应用程序”有任何建议吗?