JavaRush /Blog Java /Random-MS /Coffee break #158. 10 Petua untuk Mengendalikan Pengecual...

Coffee break #158. 10 Petua untuk Mengendalikan Pengecualian di Jawa

Diterbitkan dalam kumpulan
Sumber: Sederhana Siaran ini akan membantu anda lebih memahami cara mengendalikan pengecualian dengan berkesan di Jawa. Coffee break #158.  10 Petua untuk Mengendalikan Pengecualian di Jawa - 1Mengendalikan 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.
  1. Berhati-hati dengan apa yang anda log.
  2. Jangan abaikan pengecualian yang dilemparkan.
  3. Gunakan pengendali pengecualian global.
  4. Jangan tutup sumber secara manual.
  5. Buang awal dan kendalikan pengecualian kemudian.
  6. Pengecualian Java tidak boleh dilog dan dilemparkan semula.
  7. Periksa pengecualian yang ditindas.
  8. Dalam pernyataan lontaran, isytiharkan pengecualian dengan tepat.
  9. Kendalikan pengecualian yang paling jelas dahulu.
  10. 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.
Jangan gabungkan kedua-dua peringkat. Jangan sekali-kali log dan kemudian buang semula pengecualian yang sama, seperti yang ditunjukkan dalam contoh di bawah:
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.

7. Periksa pengecualian yang ditindas

Pengecualian yang dihalang ialah ciri bahasa baharu yang tidak diketahui oleh semua pembangun. Dengan melaksanakan kaedah terbukti dengan sumber, dua pengecualian boleh dilemparkan pada masa yang sama. Keadaan ini boleh disemak dengan mudah dengan menanyakan kehadiran pengecualian yang ditindas. Satu-satunya cara untuk menentukan sama ada keadaan ini telah berlaku adalah untuk melihat sama ada pengecualian sasaran juga mengandungi pengecualian yang ditindas.

8. Apabila menggunakan pernyataan lontaran, nyatakan pengecualian yang tepat

Dengan menggunakan pernyataan lontaran di dalam badan kaedah, pembangun yang cuai akan menggunakan kelas pengecualian generik. Tetapi ini bukan cara terbaik untuk mengendalikan pengecualian di Jawa. Sebaliknya, sentiasa nyatakan pengecualian tepat yang mungkin dilemparkan oleh kaedah tersebut. iIa membantu pembangun lain mengetahui tentang teknik pengendalian ralat yang berbeza yang boleh digunakan apabila kaedah tertentu tidak berfungsi seperti yang diharapkan.

9. Kendalikan pengecualian yang paling jelas dahulu

Ini lebih merupakan keperluan pengkompil daripada petua untuk amalan pengendalian pengecualian Java, tetapi pembangun harus sentiasa mengendalikan pengecualian yang paling jelas dahulu dan pengecualian yang paling tidak pasti terakhir. Jika peraturan ini tidak dipatuhi, JVM akan mengembalikan ralat masa kompilasi dengan mesej ralat yang sangat samar dan sukar difahami. Jadikan kehidupan anda sebagai pembangun perisian lebih mudah dengan sentiasa mengendalikan pengecualian tertentu dalam kod anda.

10. Gunakan semantik pengendalian pengecualian moden

Java menyediakan banyak ciri pengendalian ralat dan pengecualian yang memudahkan pembangunan dan mengurangkan jumlah kod Java dengan ketara. Gunakan keupayaan untuk mengendalikan berbilang pengecualian dalam satu blok tangkapan dan tutup sumber secara automatik menggunakan blok percubaan . Gunakan Pengecualian Runtime supaya pembangun lain tidak perlu mengendalikan pengecualian yang anda lemparkan.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION