Java ialah bahasa pengaturcaraan berorientasikan objek Oleh kerana kestabilan dan keselamatannya yang tinggi, ia telah menjadi bahasa pengaturcaraan yang digunakan secara meluas. Walau bagaimanapun, dalam proses pembangunan program, pengecualian sentiasa menjadi masalah yang tidak dapat dielakkan. Memandangkan bahasa Java sememangnya mampu mengendalikan pengecualian, ia boleh menggunakan mekanisme pengendalian pengecualian untuk mengelakkan ranap program dan memastikan operasi normal program.
1. Gambaran keseluruhan pengecualian dalam Java
Di Java, pengecualian merujuk kepada situasi tidak normal yang berlaku dalam atur cara, seperti tatasusunan di luar sempadan, pembahagi adalah sifar, fail tidak ditemui, dll. Walau bagaimanapun, pengecualian ini tidak secara langsung akan menyebabkan program ranap seperti bahasa C, tetapi akan membuang objek pengecualian. Objek ini boleh ditakrifkan oleh pengaturcara, atau ia boleh menjadi kelas pengecualian sedia ada dalam Java, seperti NullPointerException (pengecualian penuding nol), ArrayIndexOutOfBoundsException (pengecualian subskrip tatasusunan di luar sempadan), dsb.
Apabila pengecualian berlaku dalam program, mesin maya Java akan mencari pengendali pengecualian yang sesuai apabila pengecualian dilemparkan, temui dan panggil pengendali yang berkaitan untuk mengendalikan pengecualian, jika tidak dijumpai, program akan membuang Pengecualian, sistem akhirnya akan menamatkan pelaksanaan program. Di Java, pengecualian dikendalikan melalui blok pernyataan try-catch-finally.
2. Pengendalian pengecualian dalam Java
Mekanisme pengendalian pengecualian dalam Java boleh dibahagikan kepada dua situasi berikut:
Apabila pengecualian dalam program tidak terkandung oleh blok pernyataan cuba-tangkap, atau pengecualian tidak ditangkap dalam blok pernyataan cuba, dan pengecualian dilemparkan secara langsung, atur cara akan ranap. Untuk mengelakkan situasi ini daripada berlaku, kita boleh menangkap pengecualian melalui kata kunci lontaran atau blok pernyataan cuba-tangkap.
Apabila pengecualian dalam program berjaya ditangkap, kita boleh memilih untuk mengendalikan pengecualian atau membuang objek pengecualian baharu. Jika anda mengendalikan pengecualian, anda boleh menggunakan blok pernyataan cuba-tangkap. Jika anda membuang objek pengecualian baharu untuk menggantikan pengecualian asal, anda boleh menggunakan pernyataan lontaran.
3. Kaedah penangkapan pengecualian dalam Java
Terdapat dua cara utama untuk menangkap pengecualian dalam Java, iaitu blok pernyataan cuba-tangkap dan kata kunci lempar. Kedua-dua kaedah boleh mengendalikan pengecualian dengan berkesan, seperti berikut:
blok pernyataan cuba-tangkap digunakan untuk menangkap pengecualian dalam Java Salah satu kaedah ialah digunakan terutamanya untuk mengendalikan pengecualian berskala kecil. Penggunaan khusus adalah seperti berikut:
cuba{
// 可能会抛出异常的代码块
} tangkap(Pengecualian e) {
// 捕获异常后的处理代码块
} akhirnya{
// 这里的代码块无论如何都会执行
}
Blok pernyataan cuba mengandungi kod yang mungkin membuang pengecualian, dan blok pernyataan tangkapan digunakan untuk menangkap dan mengendalikan pengecualian yang dilontar. Jika kod dalam blok cuba tidak membuang pengecualian, blok tangkapan tidak akan dilaksanakan. Blok pernyataan akhirnya digunakan untuk melaksanakan kod yang perlu dilaksanakan, seperti operasi penutupan sumber, dsb.
membuang kata kunci ialah kaedah pengendalian pengecualian dalam Java, terutamanya digunakan untuk mengendalikan pelbagai pengecualian. Apabila kaedah melontar pengecualian, anda boleh menggunakan kata kunci lontaran pada pengisytiharan kaedah untuk mengisytiharkan pengecualian Pada masa ini, pengkompil akan menyemak sama ada terdapat pernyataan untuk mengendalikan pengecualian dalam kaedah, dan jika tidak, a ralat akan dilaporkan.
Contohnya:
public void read(String fileName) membuang IOException {
BufferedReader reader = new BufferedReader(new FileReader(fileName)); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close();
}
Dalam kod di atas, kaedah read() mungkin Melemparkan IOException Pada masa ini, kita boleh menggunakan kata kunci lontaran pada pengisytiharan kaedah untuk mengisytiharkan bahawa kaedah itu mungkin membuang pengecualian.
4. Kelas pengecualian dalam Java
Terdapat dua kelas pengecualian asas dalam Java, iaitu RuntimeException dan CheckedException. RuntimeException merujuk kepada pengecualian yang mungkin dilemparkan apabila program sedang berjalan Pengecualian ini tidak dipaksa untuk dikendalikan pada masa penyusunan dan hanya akan dilemparkan apabila ia berlaku pada masa jalan, seperti NullPointerException, ArrayIndexOutOfBoundsException, dsb. CheckedException merujuk kepada pengecualian yang tidak akan dilemparkan semasa program dijalankan Pengaturcara mesti secara eksplisit mengendalikan pengecualian semasa menulis kod, seperti IOException, SQLException, dsb.
Selain dua kelas pengecualian asas ini, terdapat juga kelas pengecualian tersuai di Jawa. Penciptaan kelas pengecualian tersuai membantu menjadikan kod lebih mudah dibaca dan diselenggara. Kelas pengecualian tersuai biasanya mewarisi daripada kelas Exception atau RuntimeException dan mengatasi beberapa pembina untuk menyesuaikan jenis pengecualian.
5. Langkah berjaga-jaga untuk pengendalian pengecualian di Jawa
Apabila mengendalikan pengecualian di Jawa, terdapat juga beberapa perkara yang perlu diberi perhatian:
Ringkasnya, pengendalian pengecualian adalah bahagian yang sangat penting dalam pembangunan Java. Pengendalian pengecualian yang munasabah boleh mengelakkan ranap program dan memastikan operasi normal program ini juga boleh memudahkan penyahpepijatan dan memberikan jaminan untuk penyelenggaraan dan peningkatan kemudian.
Atas ialah kandungan terperinci Pengendalian pengecualian di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!