Rumah  >  Artikel  >  Java  >  Ralat Java: Ralat Penangkapan Pengecualian, Cara Menyelesaikan dan Mengelak

Ralat Java: Ralat Penangkapan Pengecualian, Cara Menyelesaikan dan Mengelak

WBOY
WBOYasal
2023-06-25 16:29:211621semak imbas

Ralat Java: Ralat Penangkapan Pengecualian, Cara Menyelesaikan dan Mengelak

Dalam pengaturcaraan Java, ralat tidak dapat dielakkan. Walaupun program kami direka bentuk dan diuji dengan teliti, ia mungkin menghadapi masalah semasa berjalan. Java menyediakan mekanisme pengecualian untuk menangani masalah ini dengan berkesan. Walau bagaimanapun, jika ralat berlaku semasa mengendalikan pengecualian, ralat menangkap pengecualian berlaku. Oleh itu, cara menyelesaikan dan mengelakkan kesilapan ini adalah sangat penting.

1. Pengetahuan asas tentang pengecualian

Di Jawa, pengecualian terbahagi kepada dua jenis: Pengecualian yang Ditandakan (pengecualian yang ditandakan) dan Pengecualian yang Tidak Ditandakan (pengecualian yang tidak ditandakan). Pengecualian yang diperiksa mesti diisytiharkan dalam tandatangan fungsi, iaitu, secara eksplisit menyatakan pengecualian yang akan dihantar ke atas, jika tidak, atur cara akan gagal untuk menyusun. Pengecualian yang tidak ditandai tidak perlu diisytiharkan dalam tandatangan fungsi.

Berikut ialah program Java yang mudah untuk menggambarkan asas pengecualian:

Contoh kelas awam {

public static void main(String[] args) {

try {
  int result = divide(5, 0);
} catch (Exception e) {
  System.out.println("Error occurred: " + e.getMessage());
}

}

public static int divide(int int divide) ) melontar Exception {

if (b == 0) {
  throw new Exception("Division by zero");
}
return a / b;

}
}

Dalam contoh ini, kami cuba melaksanakan operasi bahagi dalam fungsi bahagi(). Jika pembahagi adalah sifar, kami membuang pengecualian yang diperiksa dan mengembalikannya ke fungsi utama. Dalam fungsi utama kami menangkap dan mencetak pengecualian. Ambil perhatian bahawa kod ini akan menghasilkan pengecualian kerana pembahagi adalah sifar.

2. Ralat menangkap pengecualian

Apabila kami menggunakan pengecualian dalam program, ralat biasa termasuk:

1 Apabila menangkap pengecualian, jenis pengecualian yang tepat tidak dinyatakan. Apabila kami menggunakan pernyataan tangkapan untuk menangkap pengecualian, jika jenis pengecualian yang ditentukan adalah salah, ralat tangkapan pengecualian akan berlaku. Sebagai contoh, jika kita cuba menangkap NullPointerException menggunakan NumberFormatException, ralat penangkapan pengecualian akan berlaku kerana kedua-dua jenis pengecualian adalah berbeza.

cuba {

int i = Integer.parseInt(null);

} tangkap (NumberFormatException e) {

System.err.println(e);

}

2. Lemparkan pengecualian ke blok kod yang salah. Jika kita membuang pengecualian ke dalam blok kod yang salah, ralat menangkap pengecualian akan berlaku. Contohnya, dalam kod berikut, jika kita membuang pengecualian dalam blok cuba yang mengendalikan pengecualian bahagi dengan sifar, ralat menangkap pengecualian akan berlaku.

cuba {

int result = divide(5, 0);

} tangkap (Exception e) {

throw e;

} akhirnya {

System.out.println("Done");

}

3 Lemparkan pengecualian dalam blok akhirnya. Apabila kita membuang pengecualian dalam blok akhirnya, ia akan menimpa pengecualian dalam blok cuba, mengakibatkan ralat menangkap pengecualian. Oleh itu, cuba elakkan membuang pengecualian dalam blok akhirnya.

cuba {

int result = divide(5, 0);

} tangkap (Exception e) {

System.out.println("Error occurred: " + e.getMessage());

} akhirnya {

throw new Exception("Unexpected exception");

}

3 Cara mengelakkan ralat menangkap pengecualian

1. Dalam pernyataan tangkapan, gunakan jenis pengecualian tepat untuk menangkap pengecualian untuk memastikan pengecualian dikendalikan dengan betul.

2. Jangan buang ke blok kod yang salah. Apabila menangkap pengecualian, jangan buang pengecualian ke dalam blok kod yang salah untuk memastikan pengecualian dikendalikan dengan betul. Jika pengecualian mesti dikendalikan dalam blok kod yang berbeza, gunakan pernyataan lempar untuk menyampaikannya kepada pemanggil.

3. Perhatikan blok akhirnya. Jangan buang pengecualian dalam blok akhirnya untuk memastikan pengecualian itu dikendalikan dengan betul. Jika anda perlu memanipulasi sumber dalam blok akhirnya, gunakan cuba-dengan-sumber (tersedia dalam Java 7 dan ke atas) atau tutup sumber secara manual (menggunakan blok cuba-akhir).

Ringkasan

Pengecualian adalah bahagian yang tidak dapat dielakkan dalam pengaturcaraan Java. Apabila mengendalikan pengecualian, kita mesti mengelakkan ralat menangkap pengecualian. Untuk mengelakkan masalah ini, kita harus menggunakan jenis pengecualian yang tepat apabila boleh, tidak membuang pengecualian ke dalam blok kod yang salah dan mengendalikan pengecualian dalam blok akhirnya dengan berhati-hati. Dengan mengendalikan pengecualian dengan betul, kami boleh menjadikan program kami lebih mantap dan boleh dipercayai.

Atas ialah kandungan terperinci Ralat Java: Ralat Penangkapan Pengecualian, Cara Menyelesaikan dan Mengelak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn