Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah punca pengecualian penuding nol?

Apakah punca pengecualian penuding nol?

DDD
DDDasal
2023-12-14 14:16:013916semak imbas

Sebab pengecualian penunjuk nol adalah: 1. Rujukan tidak dimulakan sebelum menggunakannya, pengecualian penunjuk nol akan dilontarkan; tidak instantiated dengan betul, ization, cuba untuk mengakses ahli-ahlinya juga akan menghasilkan pengecualian penunjuk nol 3. Rujukan secara eksplisit diberikan kepada nol Dalam kes ini, cuba mengakses ahli yang dirujuk akan membuang pengecualian penunjuk nol; kaedah mengembalikan nilai nol, dan memanggil Menggunakan nilai pulangan secara langsung selepas kaedah akan menyebabkan pengecualian penunjuk nol 5. Elemen tatasusunan tidak dimulakan, yang akan menyebabkan pengecualian penunjuk nol.

Apakah punca pengecualian penuding nol?

Sistem pengendalian tutorial ini: sistem Windows 10, komputer Dell G3.

Pengecualian Null Pointer ialah ralat biasa dalam pengaturcaraan. Ia biasanya berlaku apabila cuba mengakses rujukan null (null reference), iaitu rujukan tidak menunjuk kepada mana-mana objek.

Sebab Pengecualian Penunjuk Null boleh dikaitkan dengan perkara berikut:

Rujukan tidak dimulakan: Apabila pembolehubah rujukan diisytiharkan tetapi tidak dimulakan, nilainya menjadi lalai kepada null. Jika rujukan tidak dimulakan sebelum menggunakannya, NullPointerException akan dilemparkan. Contohnya:

String str;
System.out.println(str.length()); // 空指针异常

Objek tidak dibuat seketika dengan betul: Dalam pengaturcaraan berorientasikan objek, anda perlu mencipta tika objek sebelum anda boleh mengakses ahlinya melalui rujukan. Jika objek itu tidak dijadikan instantiated dengan betul, cuba mengakses ahlinya juga akan menyebabkan NullPointerException. Contohnya:

Person person = null;
System.out.println(person.getName()); // 空指针异常

Rujukan dipaparkan sebagai batal: Kadangkala, kami sengaja memberikan rujukan kepada null, menunjukkan bahawa rujukan itu tidak lagi menunjuk kepada sebarang objek. Jika anda cuba mengakses ahli yang dirujuk dalam kes ini, NullPointerException juga akan dilemparkan. Contohnya:

String str = null;
System.out.println(str.length()); // 空指针异常

Kaedah mengembalikan nilai nol:Apabila kaedah diisytiharkan untuk mengembalikan jenis objek, kadangkala kaedah itu akan mengembalikan nilai nol. Jika anda secara langsung menggunakan nilai pulangan untuk beroperasi selepas memanggil kaedah ini, ia boleh menyebabkan pengecualian penuding nol. Contohnya:

String str = getString();
System.out.println(str.length()); // 空指针异常
public String getString() {
    return null;
}

Elemen tatasusunan tidak dimulakan: Apabila menggunakan tatasusunan, jika elemen tatasusunan tidak dimulakan, unsur-unsur dalam tatasusunan lalai kepada null. NullPointerException juga dilemparkan jika elemen tatasusunan tidak dimulakan sebelum mengaksesnya. Contohnya:

String[] array = new String[5];
System.out.println(array[0].length()); // 空指针异常

Untuk mengelakkan pengecualian penuding nol, anda boleh mengambil langkah berikut:

  1. Sebelum menggunakan rujukan, pastikan rujukan telah dimulakan dengan betul.

  2. Cuba elakkan memberikan rujukan kepada null dan semak sama ada rujukan itu sudah menunjuk kepada objek yang sah sebelum memberikan nilai.

  3. Sebelum menggunakan nilai pulangan kaedah, mula-mula buat pertimbangan bukan batal bagi nilai pulangan.

  4. Sebelum menggunakan elemen tatasusunan, pastikan elemen tatasusunan telah dimulakan dengan betul.

Pengecualian penuding nol ialah pengecualian yang disebabkan oleh mengakses rujukan nol Dalam pengaturcaraan, anda perlu memberi perhatian kepada permulaan yang betul dan penggunaan rujukan untuk mengelakkan pengecualian penunjuk nol.

Atas ialah kandungan terperinci Apakah punca pengecualian penuding nol?. 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