Pengecualian yang sangat biasa di Java ialah IllegalArgumentException, juga dikenali sebagai "pengecualian objek null". Pengecualian ini biasanya berlaku apabila pembangun cuba menggunakan objek nol untuk memanggil kaedah atau melakukan beberapa operasi. Artikel ini akan meneroka punca pengecualian ini dan cara menanganinya.
Apabila kita cuba memanggil kaedah pada objek nol atau melakukan operasi menggunakan objek, pengkompil Java membuang pengecualian IllegalArgumentException. Sebagai contoh, jika kita cuba menggunakan nilai nol sebagai sebahagian daripada rentetan yang diformatkan, kod tersebut mungkin kelihatan seperti ini:
String str = null;
String.format("Value is: %s", str);
Dalam contoh ini, str kosong dan kami cuba memanggil kaedah format dengannya sebagai parameter. Oleh itu, pengkompil Java akan membuang IllegalArgumentException yang menunjukkan bahawa kami cuba menggunakan templat rentetan kosong untuk pemformatan.
Sebab Java membuang pengecualian ini adalah kerana kami telah lulus parameter yang tidak sah dalam kod. Parameter tidak boleh digunakan dalam kaedah atau operasi kerana nilai parameter tidak mematuhi jenis atau bentuk yang diperlukan. Dalam contoh di atas, kaedah format menjangkakan jenis parameter bukan nol, tetapi kami cuba menggunakan nilai nol sebagai parameter.
Dalam kes lain, parameter yang diluluskan dalam kod mungkin tidak mematuhi julat atau had yang ditentukan. Sebagai contoh, jika kita cuba menghantar nombor negatif kepada kaedah abs, pengkompil Java akan membuang IllegalArgumentException:
int num = -10;
Math.abs(num);
Dalam contoh ini, pengkompil Java membuang Pengecualian adalah kerana kami cuba memanggil kaedah abs dengan nombor negatif, yang menjangkakan integer positif.
Apabila Java membuang IllegalArgumentException, terdapat beberapa kaedah yang boleh kita ambil untuk menyelesaikan masalah tersebut. Berikut ialah beberapa penyelesaian:
(1) Semak sama ada kod itu betul dan pastikan semua parameter dihantar dengan betul. Kecualikan parameter tidak sah seperti nilai nol.
(2) Gunakan operasi nol dalam kod untuk mengelakkan objek kosong. Contohnya, gunakan pernyataan if untuk menentukan sama ada objek itu kosong Jika ia kosong, tiada operasi akan dilakukan.
(3) Gunakan blok cuba-tangkap dalam kod untuk menangkap pengecualian IllegalArgumentException. Kendalikannya dengan sewajarnya dan biarkan pelaksanaan berjalan lancar. Berikut ialah contoh blok cuba-tangkap:
cuba {
//执行代码,可能会抛出IllegalArgumentException异常
}tangkap (IllegalArgumentException ex) {
// 异常处理代码
}
(4) Di Java, kita boleh menggunakan penegasan untuk mengelak daripada membuang pengecualian IllegalArgumentException. Penegasan ialah mekanisme yang digunakan dalam penyahpepijatan dan ujian untuk memastikan kod itu betul. Berikut ialah contoh penggunaan assert:
int value = -2;
assert value > 0 : "Nilai mesti positif";
Math.abs(value);
Dalam contoh ini, kami menggunakan kata kunci assert Semak sama ada nilai pembolehubah ialah nombor positif. Jika nilai kurang daripada atau sama dengan sifar, Java akan membuang pengecualian AssertionError, menerangkan mesej penegasan dalam kod, iaitu, "Nilai mesti positif".
Ringkasan:
Di Jawa, kita sering menghadapi IllegalArgumentException, iaitu apa yang dipanggil pengecualian objek nol. Pengecualian ini biasanya disebabkan apabila kami cuba menghantar objek nol atau parameter tidak sah kepada kaedah atau operasi. Kita boleh mengambil beberapa langkah untuk mengelakkan berlakunya pengecualian ini, seperti menggunakan operasi nol, blok cuba-tangkap, pernyataan tegas, dsb. Pada masa yang sama, apabila pengecualian berlaku, kita perlu mengendalikannya dengan betul untuk memastikan kod tersebut dilaksanakan dengan lancar dan mengelakkan masalah yang serius.
Atas ialah kandungan terperinci Pengecualian objek null dalam Java - bagaimana untuk menyelesaikan java.lang.IllegalArgumentException?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!