Sumber: Sederhana Siaran ini akan membantu anda lebih memahami cara mengendalikan pengecualian dengan berkesan di Jawa. Mengendalikan pengecualian Java boleh menjadi mencabar. Ia boleh menjadi sukar untuk menentukan pengecualian Java untuk dikendalikan, pengecualian untuk dilemparkan semula, dan yang mana perlu diabaikan. Walau bagaimanapun, terdapat beberapa garis panduan berguna yang boleh membantu anda mengendalikan pengecualian dan membuat aplikasi baharu dengan berkesan. Jom berkenalan dengan mereka.
- Berhati-hati dengan apa yang anda log.
- Jangan abaikan pengecualian yang dilemparkan.
- Gunakan pengendali pengecualian global.
- Jangan tutup sumber secara manual.
- Buang awal dan kendalikan pengecualian kemudian.
- Pengecualian Java tidak boleh dilog dan dilemparkan semula.
- Periksa pengecualian yang ditindas.
- Dalam pernyataan lontaran, isytiharkan pengecualian dengan tepat.
- Kendalikan pengecualian yang paling jelas dahulu.
- Gunakan semantik pengendalian pengecualian moden.
1. Berhati-hati dengan apa yang anda log
Pembangun perisian harus sentiasa menyedari hak pelanggan mereka terhadap keselamatan dan privasi.- Program Java boleh memindahkan data ke sistem lain, dan sejumlah besar pembangun dan pentadbir boleh bekerja dengannya (termasuk membetulkan pepijat).
- Jika sebarang data sensitif direkodkan dalam fail log, syarikat anda tidak akan mematuhi keperluan keselamatan dan anda mungkin kehilangan pekerjaan anda.
2. Jangan abaikan pengecualian yang dilemparkan
Jangan menangkap pengecualian dan kemudian mengabaikannya. Menyembunyikan pengecualian bukanlah cara yang baik untuk mengendalikannya di Jawa. Sekurang-kurangnya, tulis nama pengecualian dan mesej yang berkaitan. Dengan cara ini, maklumat tentang masalah boleh didapati dalam entri anda. Menyahpepijat aplikasi Java kerana pengecualian tersembunyi adalah amat sukar.3. Gunakan pengendali pengecualian global
Semasa pelaksanaan program akan sentiasa ada beberapa pengecualian yang sebelum ini tidak ditangkap dalam kod anda. Oleh itu, sentiasa tambahkan pengendali pengecualian global untuk mengendalikan pengecualian yang tidak ditangkap. Ini bukan sahaja membenarkan pengecualian dilog dan dikendalikan, tetapi juga akan menghalang aplikasi daripada ranap jika pengecualian dilemparkan pada masa jalan.4. Jangan tutup sumber secara manual
Satu lagi cadangan penting semasa mengendalikan pengecualian Java ialah membenarkan JVM memanggil kaedah close() pada sumber yang ditutup. Jangan cuba menutupnya sendiri. Ini boleh dicapai dengan mudah dengan memulakan sumber di dalam modul sumber cuba . Semantik:public class TryWithResourcesExample {
public static void main(String[] args) throws Exception {
try (Door door = new Door()) {
door.swing();
} catch (Exception e) { ..... }
} finally { .....}
}
}
Seperti yang anda lihat, selepas percubaan...catch block selesai, JVM menutup sumber untuk anda, menghapuskan kemungkinan kebocoran sumber yang rumit dan sukar diperbaiki.
5. Buang awal dan kendalikan pengecualian kemudian
Lemparkan pengecualian apabila keadaan pengecualian berlaku dalam kod anda. Jangan tunggu sebarang baris kod untuk dilaksanakan sebelum keluar dari kaedah yang anda gunakan. Apabila menangkap pengecualian, fungsi mesti diletakkan pada penghujung kaedah. Ini mengurangkan bilangan blok tangkapan dalam kaedah anda, menjadikan kod anda lebih mudah dibaca dan diselenggara.6. Pengecualian Java tidak boleh dilog dan dilempar semula
Jika pengecualian berlaku, lakukan salah satu daripada yang berikut:- Teruskan bekerja dengan program anda semasa anda log pengecualian.
- Buang pengecualian sekali lagi dan benarkan cara lain untuk mengelog data.
try {
Class.forName("com.min.Example");
} catch (ClassNotFoundException ex) {
log.warning("Class was not found.");
throw ex;
}
Ini mengakibatkan penduaan kod dan fail log menjadi tersumbat dengan entri pendua, menjadikannya lebih sukar untuk mendiagnosis kod.
GO TO FULL VERSION