我正在使用 swing 编写应用程序。我需要通过单击 JButton
退出应用程序,我可以使用 System.exit()
还是应该使用其他一些方法,这是最佳做法。如果调用 System.exit()
不是最佳做法,请说明原因并说明退出应用程序的替代方法。
最佳答案
一般来说,调用 System.exit(...)
除了应用程序的“main”方法之外的任何地方都可能有问题,原因(至少)如下。
这是重用代码的障碍。
这让单元测试变得困难。例如,如果您的代码在您的 JUnit 测试执行一些错误处理时调用
System.exit
,那么您的测试序列就结束了!
在“退出”按钮的按钮监听器中调用 System.exit(...)
的具体情况还不错。您不太可能希望在不需要此行为的地方重用按钮监听器。此外,您可能可以找到解决单元测试难题的方法;例如不要对特定方法进行单元测试!
但是,我想我仍然会尝试以不同的方式退出。例如,让 main
方法启动所有内容,然后阻塞在 CountDownLatch 上,然后让按钮监听器递减闩锁。当 main
方法解除阻塞时,它会执行相关的关闭代码并根据需要返回或退出。
关于java - Java 中的 System.exit(0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2651210/