Rumah > Java > javaTutorial > teks badan

Punca dan penyelesaian kepada pengecualian NullPointerException dalam Java

WBOY
Lepaskan: 2023-06-25 12:25:26
asal
1263 orang telah melayarinya

Punca dan penyelesaian kepada NullPointerException dalam Java

Semasa proses pengaturcaraan, kami sering menghadapi NullPointerException. Pengecualian ini dilemparkan oleh Java Virtual Machine (JVM), yang bermaksud bahawa apabila kita mengakses objek atau sifatnya, tiada ruang diperuntukkan untuk objek tersebut. Dalam artikel ini, kita akan membincangkan punca NullPointerException dan cara menangani pengecualian ini.

Punca NullPointerException

  1. Objek tidak dimulakan dengan betul

Selepas kita mencipta objek, jika kita cuba mengakses sifat atau kaedah objek tanpa memperuntukkan ruang untuk objek, NullPointerException akan dilemparkan. Contohnya:

String s; 
System.out.println(s.length());
Salin selepas log masuk

Dalam contoh ini, kami tidak memperuntukkan ruang memori untuk objek "s". Jika kita cuba menggunakan kaedah "s.length()", NullPointerException akan dilemparkan.

  1. Kaedah mengembalikan nilai nol

Jika kaedah mengembalikan nilai nol dan kami beroperasi pada nilai nol ini, NullPointerException akan dilemparkan. Contohnya:

String str = null; 
int length = str.length();
Salin selepas log masuk

Dalam contoh ini, kami memberikan nilai nol kepada objek "str". Jika kita cuba menggunakan kaedah "length()" padanya, NullPointerException akan dilemparkan.

  1. Rujukan objek adalah batal

Jika kita menggunakan rujukan objek nol untuk memanggil kaedah atau mengakses harta, NullPointerException akan dibuang. Contohnya:

String str = null; 
str.toString();
Salin selepas log masuk

Dalam contoh ini, kami menggunakan rujukan objek kosong "str" ​​​​dan cuba menggunakan kaedah "toString()" padanya, NullPointerException akan dilemparkan.

Penyelesaian kepada NullPointerException

  1. Memulakan objek

Untuk mengelakkan NullPointerException, kita perlu memulakan objek sebelum menggunakannya. Contohnya:

String s = "";
System.out.println(s.length());
Salin selepas log masuk

Dalam contoh ini, kami menetapkan rentetan kosong pada objek "s". Sekarang, jika kita cuba menggunakan kaedah "s.length()", NullPointerException tidak akan dibuang.

  1. Menyemak nilai null

Kita boleh menyemak sama ada sesuatu objek adalah null sebelum menggunakannya. Contohnya:

String str = null;
if (str != null) {
    int length = str.length();
}
Salin selepas log masuk

Dalam contoh ini, kami menggunakan pernyataan "jika" untuk menyemak sama ada objek "str" ​​​​adalah batal. Jika ia bukan nol, kami kemudian menggunakan kaedah "length()" padanya, dengan itu mengelakkan berlakunya NullPointerException.

  1. Gunakan pernyataan cuba-tangkap

Kita boleh menggunakan pernyataan cuba-tangkap untuk menangkap pengecualian NullPointerException. Contohnya:

String str = null;
try {
    int length = str.length();
} catch (NullPointerException e) {
    System.out.println("出现了NullPointerException异常");
}
Salin selepas log masuk

Dalam contoh ini, kami menggunakan pernyataan cuba-tangkap untuk menangkap pengecualian NullPointerException. Jika nilai "str" ​​​​adalah batal, pengecualian dilemparkan dan mesej ralat dipaparkan.

Ringkasan

NullPointerException ialah salah satu pengecualian biasa dalam pembangunan Java, tetapi kita boleh mengelakkannya melalui kaedah pengaturcaraan yang sesuai. Artikel ini membincangkan punca dan penyelesaian NullPointerException, dengan harapan dapat membantu anda memahami dan menyelesaikan NullPointerException dengan lebih baik.

Atas ialah kandungan terperinci Punca dan penyelesaian kepada pengecualian NullPointerException dalam Java. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!