Rumah > Java > javaTutorial > IllegalArgumentException atau NullPointerException: Pengecualian yang manakah untuk Parameter Null dalam Kaedah Setter?

IllegalArgumentException atau NullPointerException: Pengecualian yang manakah untuk Parameter Null dalam Kaedah Setter?

Patricia Arquette
Lepaskan: 2024-12-04 20:35:13
asal
797 orang telah melayarinya

IllegalArgumentException or NullPointerException: Which Exception for a Null Parameter in Setter Methods?

Bila Melempar IllegalArgumentException atau NullPointerException untuk Parameter Null

Apabila mentakrifkan kaedah penetap, pembangun sering menghadapi dilema sama ada hendak membuang IllegalArgumentException atau NullPointerException untuk parameter null. Kedua-dua pengecualian kelihatan relevan berdasarkan penerangan JavaDoc mereka:

  • IllegalArgumentException: Menunjukkan hujah yang menyalahi undang-undang atau tidak sesuai.
  • NullPointerException: Dilemparkan apabila null digunakan tidak sesuai.

Walau bagaimanapun, pilihan yang sesuai ialah IllegalArgumentException (IAE) atas sebab-sebab berikut:

  • Penggunaan Yang Dimaksudkan: NPE bertujuan untuk ralat masa jalan yang berkaitan dengan penyahrujukan nol, manakala IAE ditetapkan untuk mengesahkan parameter.
  • Jejak Mengelirukan: NPE dalam surih tindanan mungkin mencadangkan penolakan nol dan bukannya nilai parameter yang salah.
  • Ketekalan: IAE ialah biasa digunakan untuk ralat parameter tidak sah yang lain, jadi ketekalan adalah diutamakan.
  • Ketidakkonsistenan API Java: Walaupun API Java kadangkala menggunakan NPE untuk parameter nol, ketidakkonsistenannya tidak boleh dicontohi.

Oleh itu, untuk kaedah penetap jika null tidak sesuai, IllegalArgumentException hendaklah digunakan untuk menyampaikan maksud pengesahan parameter.

Atas ialah kandungan terperinci IllegalArgumentException atau NullPointerException: Pengecualian yang manakah untuk Parameter Null dalam Kaedah Setter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan