Panduan untuk System.exit ()

1. Gambaran keseluruhan

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

Kami akan melihat tujuannya, tempat penggunaan dan cara menggunakannya. Kami juga akan melihat apa perbezaannya dengan menggunakan kod status yang berbeza.

2. Apa itu System.exit ?

System.exit adalah kaedah yang tidak sah . Dibutuhkan kod keluar, yang diteruskan ke skrip panggilan atau program.

Keluar dengan kod sifar bermaksud jalan keluar biasa:

System.exit(0);

Kita boleh menyampaikan bilangan bulat sebagai argumen kaedah. Kod status bukan sifar dianggap sebagai jalan keluar yang tidak normal.

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

Ini bermaksud bahawa kod berikutnya setelah System.exit berkesan tidak dapat dicapai dan namun, penyusun tidak mengetahui mengenainya.

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

Bukan idea yang baik untuk mematikan program dengan System.exit (0) . Ini memberi kita hasil yang sama dari keluar dari kaedah utama dan juga menghentikan baris berikutnya dari pelaksanaan, juga thread memanggil sistem.exit blok sehingga JVM berakhir. Sekiranya cangkuk penutupan menyerahkan tugas ke utas ini, ia akan menemui jalan buntu.

3. Mengapa Kita Memerlukannya?

Kes penggunaan khas untuk System.exit adalah apabila terdapat keadaan yang tidak normal dan kita harus segera keluar dari program.

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

4. Bilakah Kita Memerlukannya?

Lazimnya skrip bergantung pada kod perintah keluar yang dipintanya. Sekiranya arahan seperti itu adalah aplikasi Java, maka System.exit sangat berguna untuk mengirim kod keluar ini.

Sebagai contoh, daripada membuang pengecualian, kita dapat mengembalikan kod keluar yang tidak normal yang kemudian dapat ditafsirkan oleh skrip panggilan.

Atau, kita boleh menggunakan System.exit untuk menggunakan cangkuk penutupan yang telah kita daftarkan. Cangkuk ini boleh diatur untuk membersihkan sumber yang dipegang dan keluar dengan selamat dari benang bukan daemon lain.

5. Contoh Mudah

Dalam contoh ini, kami cuba membaca fail dan jika ada, kami mencetak garis daripadanya. Sekiranya fail tidak ada, kita keluar dari program dengan System.exit dari blok tangkapan.

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 mesti perhatikan bahawa blok akhirnya tidak dapat dilaksanakan sekiranya fail tidak dijumpai. Kerana System.exit pada blok tangkapan keluar dari JVM dan tidak membenarkan blok akhirnya dilaksanakan.

6. Memilih Kod Status

Kita boleh lulus bilangan bulat sebagai kod status tetapi, praktik umum ialah System.exit dengan kod status 0 adalah normal dan yang lain adalah jalan keluar yang tidak normal.

Perhatikan bahawa ini hanya "amalan yang baik" dan bukan peraturan ketat yang perlu diambil berat oleh penyusun.

Juga, perlu diperhatikan ketika kita menggunakan program Java dari baris perintah bahawa kod status dipertimbangkan.

Dalam contoh di bawah ini, apabila kita cuba menjalankan SystemExitExample.class, jika keluar dari JVM dengan memanggil System.exit dengan kod status bukan sifar, maka gema berikut tidak akan dicetak.

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

Untuk menjadikan program kami dapat berkomunikasi dengan alat standard lain, kami mungkin mempertimbangkan untuk mengikuti kod standard yang digunakan oleh sistem berkaitan untuk berkomunikasi.

Sebagai contoh, kod status UNIX mendefinisikan 128 sebagai standard untuk "argumen tidak sah untuk keluar". Oleh itu, mungkin ada baiknya menggunakan kod ini apabila kita memerlukan kod status kita untuk disampaikan kepada sistem operasi. Jika tidak, kami bebas memilih kod kami.

7. Kesimpulannya

Dalam tutorial ini, kita membincangkan bagaimana System.exit berfungsi ketika menggunakannya, dan bagaimana menggunakannya.

Adalah praktik yang baik untuk menggunakan pengendalian pengecualian atau pernyataan pengembalian biasa untuk keluar dari program ketika bekerja dengan pelayan aplikasi dan aplikasi biasa lainnya. Penggunaan kaedah System.exit lebih sesuai untuk aplikasi berasaskan skrip atau di mana sahaja kod status ditafsirkan.

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