一千萬個為什麽

搜索

java中的System.exit(0)

我正在使用swing編寫應用程序。我需要通過單擊 JButton 退出應用程序,因為我可以使用 System.exit()或者我應該使用其他方法,這是最佳實踐。如果調用 System.exit()不是最佳實踐,那麽告訴原因並告訴退出應用程序的替代方法。

最佳答案

通常,在應用程序的“主”方法的任何地方調用 System.exit(...)可能會出現(至少)以下原因的問題。

  • 重用代碼是一個障礙。

  • 它使單元測試變得困難。例如,如果您的代碼在JUnit測試執行一些錯誤處理時調用 System.exit ,那麽它就是測試序列的結束!

在按鈕監聽器中為“退出”按鈕調用 System.exit(...)的具體情況並不是那麽糟糕。您不太可能希望在不需要此行為的地方重用按鈕偵聽器。此外,您可以找出單元測試難題的解決方法;例如不要對特定方法進行單元測試!

但是,我想我仍然會嘗試以不同的方式退出。例如,讓 main 方法啟動所有內容然後在CountDownLatch上阻塞,然後讓按鈕偵聽器減少鎖存器。當 main 方法解除阻塞時,它會執行相關的關閉代碼並根據需要返回或退出。

轉載註明原文: java中的System.exit(0)