Bagaimana untuk menangani pengecualian AssertionError di Java?
Assertion ialah teknologi penyahpepijatan yang biasa digunakan di Java, yang boleh membantu pembangun menentukan ketepatan program. Di Java, pernyataan penegasan boleh menggunakan penegasan untuk menyemak sama ada syarat tertentu dipenuhi apabila program dijalankan. Jika ia tidak berpuas hati, pengecualian AssertionError akan dilemparkan. Dalam artikel ini, kami akan menerangkan cara mengendalikan pengecualian AssertionError dengan betul.
1. Apakah itu AssertionError?
AssertionError ialah pengecualian yang sangat istimewa dalam Java Ia hanya akan berlaku apabila pernyataan penegasan digunakan dalam program untuk menegaskan. Apabila syarat pernyataan penegasan tidak berlaku, atur cara akan membuang pengecualian AssertionError, yang merupakan subkelas Ralat dan mewakili kegagalan keadaan yang dijangkakan dalam kod.
2. Cara mengendalikan pengecualian AssertionError
Apabila pengecualian AssertionError berlaku dalam program, maklumat pengecualian berikut akan dilemparkan:
Exception in thread "main" java.lang.AssertionError at MyClass.myMethod(MyClass.java:8) at MyClass.main(MyClass.java:14)
Seperti yang dapat dilihat daripada maklumat pengecualian di atas, maklumat pengecualian AssertionError tidak memberikan khusus maklumat. Punca atau keadaan yang mungkin menyebabkan pengecualian. Oleh itu, untuk pengecualian jenis ini, kita perlu menjalankan penyahpepijatan yang berhati-hati semasa pemprosesan sebenar untuk menentukan punca khusus pengecualian.
Biasanya, terdapat dua cara utama untuk mengendalikan pengecualian AssertionError:
Di Java, pernyataan penegasan boleh dilumpuhkan. Apabila penegasan dilumpuhkan, ketepatan program tidak lagi akan disemak, dan walaupun syarat tertentu tidak dipenuhi, pengecualian AssertionError tidak akan dibuang. Oleh itu, apabila mengendalikan pengecualian AssertionError, kita perlu menyemak sama ada sebarang penegasan dilumpuhkan.
Terdapat dua cara untuk mendayakan penegasan:
Apabila menyusun dalam Java, anda boleh menggunakan pilihan -enableassertions/-ea untuk mendayakan penegasan. Pilihan ini memberitahu pengkompil untuk memasukkan pernyataan penegasan apabila menjana kod bait, dengan itu membolehkan semakan penegasan semasa program berjalan.
Sebagai contoh, jika anda ingin menyusun kelas yang dipanggil MyClass dan menggunakan penegasan di dalamnya, anda boleh menggunakan arahan berikut:
javac -ea MyClass.java
Semasa aplikasi Java sedang berjalan , anda boleh Dayakan penegasan menggunakan pilihan -enableassertions/-ea. Mendayakan pilihan ini memastikan bahawa semua pernyataan penegasan dalam program akan dilaksanakan pada masa jalan.
Sebagai contoh, jika anda ingin mendayakan pernyataan penegasan semasa menjalankan aplikasi MyClass, anda boleh menggunakan arahan berikut:
java -ea MyClass
Dalam program Java, jika syarat tertentu dipenuhi , kita boleh menggunakan pernyataan tegas untuk membuat penegasan. Jika ia tidak berpuas hati, pengecualian AssertionError akan dilemparkan. Oleh itu, apabila mengendalikan pengecualian AssertionError, kita perlu menyemak semua pernyataan penegasan dalam program untuk memastikan bahawa ungkapan bersyaratnya adalah betul.
Sebagai contoh, untuk program berikut:
public class MyClass { public static void main(String[] args) { int value = 10; assert value > 10 : "The value should be greater than 10."; } }
Jika anda menjalankan program ini, pengecualian AssertionError akan dilemparkan. Ini kerana pembolehubah nilai dalam program mempunyai nilai 10, tidak lebih daripada 10. Oleh itu, kita perlu mengubah suai atur cara dan menggunakan ungkapan bersyarat yang betul dalam pernyataan penegasan untuk mengelakkan pengecualian ini.
3. Summary
AssertionError ialah jenis pengecualian khas dalam Java, yang hanya akan berlaku apabila pernyataan penegasan digunakan dalam program untuk menegaskan. Apabila syarat pernyataan penegasan tidak berlaku, program akan membuang pengecualian AssertionError. Apabila mengendalikan pengecualian ini, kita perlu menyemak sama ada sebarang penegasan dilumpuhkan dan semak dengan teliti semua pernyataan penegasan dalam program untuk memastikan bahawa ungkapan bersyaratnya adalah betul. Ini boleh memastikan ketepatan program dan mengelakkan berlakunya AssertionError.
Atas ialah kandungan terperinci Bagaimana untuk mengendalikan pengecualian AssertionError di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!