Rumah >Java >javaTutorial >Mekanisme pengecualian dan teknik pengendalian di Jawa
Mekanisme pengecualian dan kemahiran pengendalian dalam Java
Mekanisme pengecualian dalam Java adalah salah satu mata pengetahuan penting yang mesti dikuasai dalam penulisan program Java Ia mengelaskan dan mengendalikan ralat, pengecualian atau masalah yang mungkin berlaku dalam program, dengan itu memastikan keteguhan dan kebolehpercayaan program. Artikel ini akan menyelidiki mekanisme pengecualian dan teknik pengendaliannya dalam Java, membantu pengaturcara Java menggunakan mekanisme pengecualian untuk menulis program berkualiti tinggi dengan lebih baik.
1. Apakah itu anomali?
Di Java, pengecualian merujuk kepada ralat, pengecualian atau masalah yang berlaku semasa program berjalan. Ia mungkin disebabkan oleh pelbagai sebab, seperti input pengguna yang tidak sah, sumber yang tidak tersedia, ralat algoritma, dsb. Java membahagikan pengecualian kepada dua jenis: pengecualian bertanda dan pengecualian tidak bertanda.
Pengecualian boleh semak merujuk kepada pengecualian yang boleh disemak apabila atur cara disusun, seperti IOException dan SQLException. Dalam pengisytiharan kaedah, adalah perlu untuk menyatakan secara eksplisit bahawa pengecualian tersebut dilemparkan supaya pemanggil boleh mengendalikannya.
Pengecualian yang tidak boleh disemak merujuk kepada pengecualian yang hanya boleh disemak apabila program berjalan, seperti pengecualian dan ralat masa jalan. Pengecualian ini biasanya bermakna bahawa sesuatu yang serius telah berlaku dengan program dan ia tidak dapat pulih dengan sendirinya. Oleh itu, mereka tidak perlu diisytiharkan secara eksplisit dalam pengisytiharan kaedah, tetapi secara automatik ditangkap dan diproses oleh mesin maya Java.
2. Cara mengendalikan mekanisme pengecualian
Mekanisme pengecualian dalam Java menggunakan tiga kekunci: "lempar", "tangkap" dan "tangani" Aksara. Apabila kaedah mengesan pengecualian, ia merangkum pengecualian dalam objek pengecualian, melontar pengecualian melalui pernyataan lontaran, dan menyerahkannya kepada kaedah yang memanggil kaedah tersebut. Kaedah panggilan boleh menangkap pengecualian menggunakan pernyataan cuba-tangkap, dan jika pengecualian berlaku, ia boleh dikendalikan dalam blok tangkapan.
Berikut ialah kod sampel mudah:
public class ExceptionTest { public static void main(String args[]) { try { int a[] = new int[2]; System.out.println("访问数组元素:" + a[3]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("异常:" + e); } System.out.println("程序正常结束!"); } }
Dalam contoh ini, blok cuba mengandungi pernyataan yang mungkin membuang pengecualian, dan blok tangkapan digunakan untuk menangkap dan mengendalikan pengecualian ArrayIndexOutOfBoundsException. Jika pernyataan dalam blok cuba melemparkan pengecualian, ia akan melompat ke blok tangkapan dan mengeluarkan maklumat pengecualian. Tidak kira sama ada pengecualian berlaku, program akan ditamatkan seperti biasa pada penghujungnya.
3 Teknik pengendalian pengecualian yang biasa digunakan
Selain menggunakan pernyataan cuba-tangkap untuk mengendalikan pengecualian, terdapat juga beberapa teknik pemprosesan yang biasa digunakan dalam Java yang boleh membantu kami mengendalikan pengecualian dengan lebih baik. meningkatkan kemantapan dan kebolehpercayaan program.
Dalam pernyataan cuba-tangkap, blok pernyataan akhirnya digunakan untuk mengandungi kod yang akan dilaksanakan tanpa mengira sama ada pengecualian berlaku. Blok akhirnya biasanya digunakan untuk mengendalikan penutupan sumber, pembersihan dan operasi lain.
Berikut ialah kod sampel finally block yang mudah:
public class FinallyTest { public static void main(String args[]) { try { int a[] = new int[2]; System.out.println("访问数组元素:" + a[3]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("异常:" + e); } finally { System.out.println("finally块,程序正常结束!"); } } }
Dalam contoh ini, tidak kira sama ada pengecualian berlaku, pernyataan dalam blok akhirnya akan dilaksanakan dan maklumat yang sepadan akan dikeluarkan .
kata kunci throws digunakan untuk mengisytiharkan secara eksplisit jenis pengecualian yang mungkin dilemparkan dalam pengisytiharan kaedah. Jika kaedah mungkin membuang jenis pengecualian tertentu, tetapi anda tidak mahu menangkap dan mengendalikan pengecualian ini dalam badan kaedah, anda boleh menggunakan kata kunci lontaran untuk membuang pengecualian kepada kaedah yang memanggil kaedah untuk pengendalian.
Berikut ialah kod contoh blok lontaran mudah:
public class ThrowsTest { public void deposit(double amount) throws RemoteException { //TODO 操作 throw new RemoteException(); } }
Dalam contoh ini, kaedah deposit mungkin membuang RemoteException. Gunakan kata kunci lontaran dalam pengisytiharan kaedah untuk membuang jenis pengecualian ini dan bukannya mengendalikannya dalam badan kaedah.
Mekanisme pengecualian dalam Java membolehkan kami menyesuaikan kelas pengecualian untuk mengendalikan jenis pengecualian tertentu dengan lebih baik. Kelas pengecualian tersuai mesti mewarisi kelas Exception atau RuntimeException dan biasanya mengandungi pembina dan beberapa sifat dan kaedah.
Berikut ialah contoh kod mudah kelas pengecualian tersuai:
public class MyException extends Exception { private int id; public MyException(String message, int id) { super(message); this.id = id; } public int getId() { return id; } }
Dalam contoh ini, kelas pengecualian tersuai MyException mewarisi kelas Pengecualian dan menambah atribut id dan kaedah getId , ini harta boleh dimulakan melalui kaedah pembina.
4. Kesimpulan
Mekanisme pengecualian dalam Java adalah salah satu mekanisme penting untuk memastikan keteguhan dan kebolehpercayaan program. Pengaturcara harus memahami jenis pengecualian dan kaedah pengendalian dalam Java, dan menguasai teknik pengendalian pengecualian biasa. Hanya dengan menguasai mekanisme dan teknik pengecualian kita boleh menulis program Java berkualiti tinggi.
Atas ialah kandungan terperinci Mekanisme pengecualian dan teknik pengendalian di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!