System.exit()
dapat digunakan untuk menjalankan kait shutdown sebelum program berhenti. Ini adalah cara yang mudah untuk menangani shutdown dalam program yang lebih besar, di mana semua bagian dari program tidak dapat (dan tidak seharusnya) saling memperhatikan. Kemudian, jika seseorang ingin berhenti, dia bisa langsung meneleponSystem.exit()
, dan kait penghenti (jika diatur dengan benar) mengurus semua upacara penutupan yang diperlukan seperti menutup file, melepaskan sumber daya dll.
"Metode ini tidak pernah kembali secara normal." hanya berarti bahwa metode tersebut tidak akan kembali; sekali utas masuk ke sana, tidak akan kembali.
Cara lain, mungkin lebih umum, untuk keluar dari suatu program adalah dengan hanya mencapai akhir main
metode. Tetapi jika ada utas non-daemon berjalan, mereka tidak akan dimatikan dan dengan demikian JVM tidak akan keluar. Jadi, jika Anda memiliki utas non-daemon semacam itu, Anda memerlukan cara lain (selain kait penonaktifan) untuk mematikan semua utas non-daemon dan melepaskan sumber daya lainnya. Jika tidak ada utas non-daemon lainnya, kembali darimain
akan mematikan JVM dan akan memanggil kait penonaktifan.
Untuk beberapa alasan kait penghentian tampaknya merupakan mekanisme yang undervalued dan disalahpahami, dan orang-orang menciptakan kembali roda dengan semua jenis peretasan khusus untuk menghentikan program mereka. Saya akan mendorong menggunakan kait shutdown; itu semua ada di Runtime standar yang akan Anda gunakan.