Penyelesaian pengecualian haram: 1. Semak sama ada parameter adalah sah 2. Kaedah pengesahan parameter 3. Gunakan pengendalian pengecualian 5. Semakan input yang salah 7. Rujuk kepada sumber lain. Pengenalan terperinci: 1. Periksa sama ada parameter adalah sah Sebelum menghantar parameter kepada kaedah, periksa sama ada parameter memenuhi peraturan atau julat yang dijangkakan boleh diekstrak ke dalam kaedah yang berasingan 3. Gunakan pengendalian pengecualian, dsb.
IllegalArgumentException ialah pengecualian masa jalan biasa di Java, biasanya dilemparkan apabila parameter yang menyalahi undang-undang atau tidak sesuai diserahkan kepada kaedah. Untuk menyelesaikan IllegalArgumentException, anda perlu menentukan sebab khusus yang mencetuskan pengecualian dan melaraskan kod anda dengan sewajarnya untuk mengelak daripada menghantar hujah haram. Berikut ialah beberapa penyelesaian biasa:
1 Periksa sama ada parameter itu sah:
Sebelum menghantar parameter kepada kaedah, semak sama ada parameter mematuhi peraturan atau julat yang dijangkakan. Sebagai contoh, jika kaedah menjangkakan nombor bukan negatif, pastikan hujah yang diluluskan lebih besar daripada atau sama dengan sifar. Gunakan pernyataan atau penegasan bersyarat untuk mengesahkan sama ada parameter itu sah Jika parameter tidak sah, buang pengecualian atau gunakan nilai lalai.
public void someMethod(int param) { if (param < 0) { throw new IllegalArgumentException("Parameter must be non-negative"); } // Method implementation }
2. Kaedah pengesahan parameter:
Untuk menjadikan kod lebih jelas dan boleh diselenggara, logik pengesahan parameter boleh diekstrak ke dalam kaedah yang berasingan. Dengan cara ini, kaedah pengesahan boleh dipanggil sebelum memanggil kaedah untuk memastikan bahawa parameter adalah sah. Jika pengesahan gagal, IllegalArgumentException dilemparkan.
public void someMethod(int param) { validateParameter(param); // Method implementation } private void validateParameter(int param) { if (param < 0) { throw new IllegalArgumentException("Parameter must be non-negative"); } }
3 Gunakan pengendalian pengecualian:
Jika anda tidak dapat mengelak daripada membuang IllegalArgumentException, anda boleh menggunakan mekanisme pengendalian pengecualian untuk menangkap dan mengendalikan pengecualian. Isytiharkan pengecualian yang dilemparkan dalam tandatangan kaedah dan gunakan pernyataan if di dalam kaedah untuk menyemak parameter. Jika parameter adalah menyalahi undang-undang, gunakan pernyataan lontaran untuk membuang pengecualian. Tambah kod pengendalian pengecualian di mana kaedah dipanggil untuk menangkap dan mengendalikan pengecualian.
public void someMethod(int param) throws IllegalArgumentException { if (param < 0) { throw new IllegalArgumentException("Parameter must be non-negative"); } // Method implementation } // Caller code try { someMethod(-1); // Will throw IllegalArgumentException } catch (IllegalArgumentException e) { // Handle exception e.printStackTrace(); }
4 Sediakan nilai lalai:
Jika parameter haram boleh diterima dalam beberapa kes, dan anda mahu kaedah itu terus dilaksanakan, pertimbangkan untuk menyediakan nilai lalai untuk parameter. Dengan cara ini, apabila parameter haram diluluskan, kaedah akan menggunakan nilai lalai dan bukannya membuang pengecualian. Nilai lalai boleh dilaksanakan menggunakan pernyataan bersyarat atau pengendali ternary.
public void someMethod(int param, int defaultValue) { int result = (param >= 0) ? param : defaultValue; // Method implementation using result }
5. Semakan input yang salah:
Dalam sesetengah kes, input yang tidak sah mungkin disebabkan oleh ralat pengguna atau faktor luaran yang lain. Dalam kes ini, sumber input harus diperiksa dan pengguna harus digesa untuk membetulkan input dengan sewajarnya. Input yang tidak sah boleh dikesan dan dikendalikan menggunakan pengesahan input, pengesahan borang atau mekanisme maklum balas pengguna. Pastikan anda memberikan mesej ralat yang jelas kepada pengguna, mengarahkan mereka tentang cara memasukkan data yang betul.
6. Penggunaan pengendalian pengecualian yang munasabah:
Walaupun pengendalian pengecualian boleh menjadikan kod lebih mantap dan boleh dibaca, penggunaan pengendalian pengecualian yang berlebihan boleh menjadikan kod itu rumit dan sukar untuk dikekalkan. Apabila memutuskan sama ada untuk membuang pengecualian, pertimbangkan logik dan kebolehbacaan kod anda, dan cara menyelesaikan masalah dengan cara yang paling mudah. Kadangkala, menggunakan kod ralat atau nilai pulangan lain mungkin merupakan pilihan yang lebih baik.
7 Rujuk sumber lain:
Jika masalah berterusan dan anda tidak dapat menyelesaikan IllegalArgumentException, anda boleh merujuk kepada dokumentasi Java rasmi, sumber dalam talian, catatan blog atau forum komuniti untuk mendapatkan bantuan lanjut. Sumber ini mungkin mengandungi amalan terbaik dan nasihat daripada pembangun lain apabila menyelesaikan masalah yang serupa.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan pengecualian hujah haram. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!