Pengecualian Pointer Null di Java: Implementasi dan Contoh



Artikel ini akan memberi Anda pengetahuan terperinci dan komprehensif tentang cara kerja Null Pointer Exception di Java dengan banyak Contoh.

Pengecualian diperlukan untuk kelancaran kode dan biarkan pemrogram mengetahui kesalahan yang harus diselesaikan. Pada artikel ini, kita akan fokus pada Pengecualian Null Pointer di Java dengan urutan sebagai berikut:

Apa itu Pengecualian Null Pointer di Java?





Pengecualian null pointer di Java adalah pengecualian runtime. Di dunia Java, nilai null khusus ditetapkan ke referensi objek. Pengecualian Null Pointer diperkenalkan saat program mencoba menggunakan referensi objek, yang memiliki nilai null. Yang bisa berupa:

  • Untuk memanggil metode tertentu dari objek null.
  • Untuk mengakses atau mengubah bidang objek null.
  • Dengan mempertimbangkan panjang null, seolah-olah itu adalah sebuah array.
  • Saat mengakses atau memodifikasi slot dari objek null.
  • Melempar nol seperti nilai yang bisa dibuang.
  • Mencoba menyinkronkan melalui objek null.

Mengapa kita membutuhkan nilai nol?



Null adalah nilai unik yang digunakan di Java. Null digunakan untuk menunjukkan bahwa tidak ada nilai yang ditetapkan ke variabel referensi. Aplikasi utama dari null terletak pada implementasi struktur data seperti daftar dan pohon terkait. Beberapa aplikasi lain menyertakan pola objek nol dan pola tunggal. Pola tunggal menetapkan bahwa hanya satu contoh kelas yang dapat dimulai dan bertujuan untuk menyediakan titik akses global ke objek.

Cara terbaik dan sederhana untuk membuat setidaknya satu instance kelas adalah dengan mendeklarasikan semua konstruktor sebagai privat. Kemudian mereka membuat metode publik yang mengembalikan instance unik kelas.

// Untuk menggunakan fungsi randomUUID. import java.util.UUID import java.io. * class Singleton {// Di sini kita menginisialisasi nilai single dan ID menjadi null. private static Singleton single = null private String ID = null private Singleton () {/ * Jadikan pribadi, untuk mencegah pembuatan instance baru kelas Singleton. * / // Buat ID ID acak = UUID.randomUUID (). ToString ()} public static Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Kode Driver kelas publik TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Keluaran:



chef vs boneka vs ansible

null-pointer

Contoh di atas adalah instance statis dari kelas singleton. Instance diinisialisasi paling banyak sekali di dalam metode Singleton get Instance.

Bagaimana cara menghindari Pengecualian Null Pointer di Java?

Untuk menghindari Pengecualian Pointer Null di Java, kita harus memastikan bahwa semua objek diinisialisasi dengan benar sebelum Anda menggunakannya. Ketika variabel referensi dideklarasikan, kita harus memverifikasi bahwa sebuah objek tidak null dan juga Sebelum kita meminta metode atau field dari objek. Berikut ini adalah beberapa masalah dengan solusi yang sesuai untuk mengatasi masalah tersebut.

// program untuk mendemonstrasikan pemanggilan metode // pada null menyebabkan NullPointerException import java.io. * class GFG {public static void main (String [] args) {// Inisialisasi variabel String dengan nilai null String ptr = null // Memeriksa apakah ptr.equals null atau berfungsi dengan baik. coba {// Baris kode ini menampilkan NullPointerException // karena ptr bernilai null if (ptr.equals ('gfg')) System.out.print ('Same') else System.out.print ('Not Same')} catch (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

Keluaran:

Menjaga Pemeriksaan Argumen Metode

Ingatlah selalu bahwa sebelum menjalankan isi metode baru, kita harus memastikan argumennya untuk nilai null dan melanjutkan eksekusi metode. Jika dan hanya jika argumen diperiksa dengan benar. Jika tidak, ini akan memunculkan 'IllegalArgumentException' dan memanggil metode pemanggilan bahwa ada yang salah dengan argumen yang diteruskan.

// program untuk memeriksa apakah parameternya null atau tidak sebelum // menggunakannya. import java.io. * class GFG {public static void main (String [] args) {// String s set string kosong dan panggil getLength () String s = '' coba {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException tertangkap')} // String disetel ke nilai dan memanggil getLength () s = 'GeeksforGeeks' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException tertangkap')} // Menyetel s sebagai null dan memanggil getLength () s = null coba {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException tertangkap')}} // Fungsi untuk mengembalikan panjang string. Itu melempar // IllegalArgumentException jika s null. public int static getLength (String s) {if (s == null) lempar IllegalArgumentException baru ('Argumen tidak boleh null') kembalikan s.length ()}}

Keluaran:

Penggunaan Operator Ternary

Operator terner digunakan untuk menghindari NullPointerException. Ekspresi Boolean dicentang dan jika ekspresi benar maka nilai1 dikembalikan, jika tidak, nilai2 dikembalikan. Operator terner untuk menangani pointer nol dapat digunakan: Gambar yang benar adalah output yang sesuai.

// Program Java untuk mendemonstrasikan bahwa kita dapat menggunakan // operator terner untuk menghindari NullPointerException. import java.io. * class GFG {public static void main (String [] args) {// Inisialisasi variabel String dengan nilai null String str = null String message = (str == null)? '': str.substring (0,5) System.out.println (pesan) str = 'Edureka_Java_Blog' pesan = (str == null)? '': str.substring (0,5) System.out.println (pesan)}}

Keluaran:

Edurek

Dengan ini, kita sampai pada akhir Pengecualian Null Pointer di Java. Saya harap Anda mendapat gambaran tentang Null Pointer Exception.

Lihat oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Kursus pelatihan dan sertifikasi Java J2EE dan SOA Edureka dirancang untuk siswa dan profesional yang ingin menjadi Pengembang Java. Kursus ini dirancang untuk memberi Anda permulaan dalam pemrograman Java dan melatih Anda untuk konsep Java inti dan lanjutan bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar di blog 'Pengecualian Pointer Null di Java' dan kami akan menghubungi Anda kembali secepatnya.