Sudahkah Anda memperhatikan java.lang.NullPointerException (NPE)? 8 Praktik Terbaik untuk Menghindari NPE runtime di Java

Diterbitkan: 2020-10-07
Sudahkah Anda memperhatikan java.lang.NullPointerException (NPE)? 8 Praktik Terbaik untuk Menghindari NPE runtime di Java

Hindari Null Pointer Exception di Java dan Java Tips dan Praktik terbaik untuk menghindari NullPointerException di Java.

Sebagai Java Developer, saya yakin Anda pasti pernah menghadapi Null Pointer Exception (NPE) mulai hari pertama. Dalam sebagian besar kasus, pengecualian NPE menunjukkan jejak tumpukan yang jelas yang menunjukkan pin akar penyebab yang sama tetapi dalam kasus Aplikasi tingkat Perusahaan besar di mana Anda memiliki ratusan kelas, menjadi mimpi buruk untuk mengetahui akar penyebab sebenarnya.

Apa itu Pengecualian Null Pointer (NPE)?

NullPointerException (NPE) adalah pengecualian yang terjadi saat Anda mencoba menggunakan referensi yang menunjuk ke tidak ada lokasi di memori (null) seolah-olah referensi objek.

Memanggil metode pada referensi null atau mencoba mengakses bidang referensi nol akan memicu NPE. Ini adalah penyebab paling umum.

Sesuai JavaDoc, di bawah ini adalah penyebab utama NPE:

  • Melempar null seolah-olah itu adalah nilai Throwable .
  • Memanggil metode instance dari objek null .
  • Mengakses atau memodifikasi bidang objek null .
  • Mengambil panjang null seolah-olah itu adalah array.
  • Mengakses atau memodifikasi slot null seolah-olah itu adalah array.

Sekarang pertanyaan sebenarnya adalah Bagaimana Menghindari java.lang.NullPointerException saat Runtime? Dalam tutorial ini kita akan melihat beberapa contoh yang membuat NPE saat runtime dan langkah-langkah yang perlu kita lakukan untuk menyelesaikannya.

Mari kita buat NPE saat runtime 1. Lihatlah contoh di bawah CrunchifyNullPointerExceptionTips.java

Kami akan membuat NPE 3 cara berbeda

  1. NPE akan dilempar jika Anda mencoba mengakses Objek null
  2. NPE akan dilempar jika Anda mencoba mengonversi String nol
  3. NPE akan dilempar jika Anda mencoba mengakses Objek nol selama inisialisasi kelas

Buat kelas CrunchifyNullPointerExceptionTips.java

Hasil:

Nah, ada beberapa tips dan trik yang bisa kita gunakan untuk menghindari NullPointerException saat runtime. Mari lihat.

Petunjuk 1:

Eclipse / IntelliJ IDE akan mencoba menampilkan NPE di ruang kerja. Perbaiki kode Anda selama pengembangan saja.

Petunjuk Null Pointer di Eclipse

Petunjuk 2:

Tambahkan crunchifyI sNullorEmpty () sebelum operasi pada objek. Tambahkan ini ke CrunchifyNullPointerExceptionTips.java

Pada program java di atas baris 55 dan 56 akan diganti dengan ini.

Petunjuk 3:

Periksa apakah String null setelah operasi trim().

Petunjuk 4:

Selalu gunakan Try Catch block untuk mencegah Proses Runtime tidak terputus.

Petunjuk 5:

Collections.emptyList() lebih disukai karena penanganan obat generik yang lebih baik.

Petunjuk 6:

Gunakan Java Assertions

Pernyataan adalah pernyataan yang memungkinkan Anda menguji asumsi Anda tentang kode Anda. Misalnya, jika Anda menulis metode yang mengembalikan nama di sistem, Anda dapat menyatakan bahwa mengembalikan otherName jika String adalah null.

Penggunaan dasar dari asersi adalah:

Tapi ada masalah: Pernyataan tidak tersedia di lingkungan produksi dan kita tidak boleh menggunakan Pernyataan dengan logika bisnis apa pun.

Petunjuk 7:

Cobalah untuk menggunakan cek containsKey() , containsValue() , contains() .

Petunjuk 8:

Sebagai kesimpulan, selalu praktik yang baik untuk menjaga NPE selama pengembangan daripada men-debug dalam produksi saat runtime. Ada beberapa tips dan trik lain yang tersedia menggunakan Spring Framework Annotation, Factory Pattern , Null Object Pattern, dll. Tapi saya akan mempersingkatnya sekarang.

Akan menerbitkan tutorial baru mungkin dalam seminggu yang satu ini. Pantau terus.

Apakah Anda ingin menambahkan sesuatu ke tutorial ini ATAU menemukan masalah, silakan bergabung dan berikan komentar Anda.