Rumah  >  Artikel  >  Java  >  Apakah punca biasa NullPointerException di Jawa?

Apakah punca biasa NullPointerException di Jawa?

王林
王林asal
2023-06-25 12:07:551530semak imbas

Java ialah bahasa pengaturcaraan berorientasikan objek Mekanisme pengendalian pengecualiannya sangat berkuasa dan terdapat banyak jenis pengecualian Antaranya, NullPointerException telah menarik banyak perhatian kerana ia sering berlaku dalam pembangunan. Artikel ini akan memperkenalkan sebab dan penyelesaian umum pengecualian NullPointerException.

NullPointerException ialah salah satu pengecualian yang paling biasa dalam Java Pengecualian ini dilemparkan apabila rujukan adalah batal apabila mengendalikan objek. Dalam erti kata lain, apabila kita cuba memanggil objek yang tidak wujud, atau apabila kita memanggil kaedah objek, objek itu kosong, dan NullPointerException akan berlaku.

  1. Objek kosong

Sesuatu objek kosong (null), yang merupakan punca paling biasa NullPointerException. Dalam kod berikut, objek str ialah objek kosong Apabila kita memanggil kaedah length() str, pengecualian NullPointerException akan dilemparkan.

String str = null;
str.length();

  1. Objek tidak dimulakan

Jika objek tidak dimulakan, NullPointerException juga akan dilemparkan.

Sebagai contoh, dalam kod berikut, tatasusunan integer dengan panjang 5 dicipta, tetapi tiada unsurnya telah dimulakan Apabila kita mengakses nilai atribut di dalamnya, NullPointerException akan dilemparkan kerana ia belum telah dimulakan.

int[] nums = new int[5];
System.out.println(nums[0]);

  1. Objek dilepaskan

Apabila kita cuba mengakses objek yang telah dikeluarkan, ia akan juga dilemparkan A NullPointerException berlaku.

Sebagai contoh, dalam kod berikut, rujukan yang menunjuk kepada str objek rentetan diberikan null. NullPointerException dilemparkan apabila kita cuba memanggil kaedah str.

String str = "hello world";
str = null;
str.toUpperCase();

  1. Memanggil kaedah nol pada objek bukan nol

Objek bukan nol memanggil kaedah nol juga boleh menyebabkan pengecualian NullPointerException.

Sebagai contoh, dalam kod berikut, jika objek bukan nol memanggil kaedah null, NullPointerException akan dilemparkan.

String str = "hello world";
str = null;
System.out.println(str.indexOf("world"));

Penyelesaian:

  1. Tentukan sama ada objek itu kosong
Sebelum objek, kita perlu menggunakan pernyataan if atau operator ternary dan struktur logik lain untuk menentukan sama ada objek kosong, dan hanya merujuk objek jika ia tidak kosong. Contohnya:

String str = null;

if (str != null) {

System.out.println(str.length());

}

    Memulakan nilai objek
Apabila mencipta objek, tetapkan nilai pada sifat atau elemen tatasusunan daripada objek untuk mengelakkan situasi uninitialization. Contohnya:

int[] nums = new int[]{1,2,3,4,5};

System.out.println(nums[0]);

    Gunakan blok try-catch untuk menangkap pengecualian
Untuk memastikan operasi normal program, anda boleh menggunakan blok cuba-tangkap untuk menangkap pengecualian NullPointerException dan mengendalikan pengecualian. Contohnya:

String str = null;

cuba {

System.out.println(str.length());

} tangkap (NullPointerException e) {

e.printStackTrace();
System.out.println("str为空对象!");

}

    Semak logik kod
,Dalam proses menulis kod perhatian kepada logik kod untuk mengelakkan kesilapan Salah operasi.

Ringkasnya, NullPointerException ialah salah satu pengecualian yang sangat biasa di Jawa, dan terdapat pelbagai sebab untuk pengecualian. Dalam pembangunan program, kita perlu memberi lebih perhatian dan mengikuti amalan pengaturcaraan Java yang baik untuk mengelakkan pengecualian NullPointerException dan memastikan kestabilan dan kebolehpercayaan program.

Atas ialah kandungan terperinci Apakah punca biasa NullPointerException di Jawa?. 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