Rumah >Java >javaTutorial >IllegalArgumentException atau NullPointerException untuk Parameter Penetap Null?

IllegalArgumentException atau NullPointerException untuk Parameter Penetap Null?

Patricia Arquette
Patricia Arquetteasal
2024-12-08 14:44:11439semak imbas

IllegalArgumentException or NullPointerException for Null Setter Parameters?

NullPointerException lwn. IllegalArgumentException: Menetapkan Parameter Dengan Sesuai

Apabila mereka bentuk kaedah penetap di mana null tidak sesuai untuk harta, persoalan timbul: harus anda membuang IllegalArgumentException (IAE) atau NullPointerException (NPE)?

Menurut dokumentasi Java dan amalan terbaik, IAE ialah pilihan yang lebih sesuai atas sebab berikut:

  1. Penggunaan Yang Dimaksudkan: NPE direka secara eksplisit untuk dibuang mengikut masa jalan, manakala IAE bertujuan untuk menunjukkan kaedah tidak sah hujah.
  2. Tafsiran Ralat: NPE mencadangkan kemungkinan ralat pengekodan dalam menggunakan null secara tidak wajar. IAE, sebaliknya, dengan jelas menyampaikan bahawa kaedah itu telah diluluskan nilai yang tidak sah.
  3. Pengesahan Parameter Konsisten: IAE biasanya digunakan untuk pengesahan parameter, menjadikannya pilihan lalai untuk semua jenis daripada parameter tidak sah, termasuk nol.
  4. Mesej Ralat Khusus: Kedua-duanya IAE dan NPE membenarkan mesej ralat tersuai untuk menyampaikan butiran pengesahan khusus.
  5. Penggunaan Tidak Konsisten dalam API Java: Walaupun sesetengah bahagian API Java menggunakan NPE untuk parameter nol, ia bukan amalan yang konsisten . Mengikuti amalan terbaik dan menggunakan IAE menggalakkan ketekalan dalam pangkalan kod anda sendiri.

Atas ialah kandungan terperinci IllegalArgumentException atau NullPointerException untuk Parameter Penetap Null?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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