Panduan untuk System.exit ()

1. Ikhtisar

Dalam tutorial ini, kita akan melihat apa arti System.exit di Java.

Kami akan melihat tujuannya, di mana menggunakan dan bagaimana menggunakannya. Kami juga akan melihat apa perbedaan dalam menjalankannya dengan kode status yang berbeda.

2. Apa itu System.exit ?

System.exit adalah metode kosong . Dibutuhkan kode keluar, yang diteruskan ke skrip atau program pemanggil.

Keluar dengan kode nol berarti keluar normal:

System.exit(0);

Kita bisa melewatkan integer apapun sebagai argumen ke metode ini. Kode status bukan nol dianggap sebagai jalan keluar abnormal.

Memanggil metode System.exit menghentikan JVM yang sedang berjalan dan keluar dari program. Metode ini tidak kembali normal.

Ini berarti bahwa kode berikutnya setelah System.exit secara efektif tidak dapat dijangkau , namun kompilator tidak mengetahuinya.

System.exit(0); System.out.println("This line is unreachable");

Bukan ide yang baik untuk mematikan program dengan System.exit (0) . Ini memberi kita hasil yang sama saat keluar dari metode utama dan juga menghentikan baris berikutnya dari eksekusi, juga thread yang memanggil blok System.exit hingga JVM berakhir. Jika hook shutdown mengirimkan tugas ke thread ini, itu mengarah ke kebuntuan.

3. Mengapa Kita Membutuhkannya?

Kasus penggunaan khas untuk System.exit adalah ketika ada kondisi tidak normal dan kita harus segera keluar dari program.

Juga, jika kita harus menghentikan program dari tempat selain metode utama, System.exit adalah salah satu cara untuk mencapainya.

4. Kapan Kita Membutuhkannya?

Biasanya skrip mengandalkan kode keluar dari perintah yang dipanggilnya. Jika perintah seperti itu adalah aplikasi Java, maka System.exit berguna untuk mengirimkan kode keluar ini.

Misalnya, alih-alih memberikan pengecualian, kita dapat mengembalikan kode keluar abnormal yang kemudian dapat ditafsirkan oleh skrip pemanggil.

Atau, kita dapat menggunakan System.exit untuk menjalankan hook shutdown yang telah kita daftarkan. Kait ini dapat disetel untuk membersihkan sumber daya yang dipegang dan keluar dengan aman dari utas non-daemon lainnya.

5. Contoh Sederhana

Dalam contoh ini, kami mencoba membaca file dan jika ada, kami mencetak baris darinya. Jika file tidak ada, kami keluar dari program dengan System.exit dari blok catch.

try { BufferedReader br = new BufferedReader(new FileReader("file.txt")); System.out.println(br.readLine()); br.close(); } catch (IOException e) { System.exit(2); } finally { System.out.println("Exiting the program"); }

Di sini, kita harus mencatat bahwa blok terakhir tidak dieksekusi jika file tidak ditemukan. Karena System.exit pada blok catch keluar dari JVM dan tidak mengizinkan blok terakhir untuk dieksekusi.

6. Memilih Kode Status

Kita dapat melewatkan integer apa pun sebagai kode status tetapi, praktik umumnya adalah System.exit dengan kode status 0 adalah normal dan yang lainnya adalah keluar abnormal.

Perhatikan bahwa ini hanya “praktik yang baik” dan bukan aturan ketat yang akan dipedulikan oleh compiler.

Juga, perlu dicatat ketika kami menjalankan program Java dari baris perintah bahwa kode status diperhitungkan.

Pada contoh di bawah ini, ketika kami mencoba untuk mengeksekusi SystemExitExample.class, jika keluar dari JVM dengan memanggil System.exit dengan kode status bukan nol, maka gema berikut tidak akan dicetak.

java SystemExitExample && echo "I will not be printed"

Untuk membuat program kami dapat berkomunikasi dengan alat standar lainnya, kami mungkin mempertimbangkan untuk mengikuti kode standar yang digunakan sistem terkait untuk berkomunikasi.

Misalnya, kode status UNIX mendefinisikan 128 sebagai standar untuk "argumen tidak valid untuk keluar". Jadi, sebaiknya gunakan kode ini ketika kita membutuhkan kode status kita untuk dikomunikasikan ke sistem operasi. Jika tidak, kami bebas memilih kode kami.

7. Kesimpulan

Dalam tutorial ini, kita membahas bagaimana System.exit bekerja kapan menggunakannya, dan bagaimana menggunakannya.

Merupakan praktik yang baik untuk menggunakan penanganan pengecualian atau pernyataan pengembalian biasa untuk keluar dari program saat bekerja dengan server aplikasi dan aplikasi reguler lainnya. Penggunaan metode System.exit lebih cocok untuk aplikasi berbasis skrip atau di mana pun kode status diinterpretasikan.

Anda dapat melihat contoh yang diberikan dalam artikel ini di GitHub.