java - Java 中的 System.exit(0)

标签 java swing

我正在使用 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/

相关文章:

Java 现在声明,稍后定义

java - SwingX如何获取JXMonthView的子组件?

java - 像在 JTextArea java 中一样在 JLabel 中 append 功能?

java - 著名的华氏度到摄氏度问题...有人可以帮我解决这个问题吗

java - RabbitMQ - Apache Camel Reading Messages 如何处理失败的消息

java - 保存实体集合时未找到 PK(错误??)

java - 使用 Jena 获取对类的 OWL 限制

java - 网格布局不按约束调整大小

java - 使用 Swing GUI 的简单客户端-服务器程序

java - 强制 paintAll() 绘制不可见的 JPanel 及其组件?