Rumah > Java > javaTutorial > Cara Membetulkan: Ralat Masa Jalan Java: Pengecualian Penunjuk Null

Cara Membetulkan: Ralat Masa Jalan Java: Pengecualian Penunjuk Null

WBOY
Lepaskan: 2023-08-18 21:25:06
asal
2328 orang telah melayarinya

Cara Membetulkan: Ralat Masa Jalan Java: Pengecualian Penunjuk Null

Cara menyelesaikan: Ralat Masa Jalan Java: NullPointerException

Gambaran Keseluruhan:
Dalam pengaturcaraan Java, NullPointerException ialah salah satu ralat masa jalan yang paling biasa. Pengecualian penuding nol berlaku apabila program cuba melakukan beberapa operasi pada objek yang rujukannya adalah nol. Artikel ini akan memperkenalkan punca pengecualian penuding nol dan menyediakan beberapa penyelesaian biasa serta kod sampel untuk membantu pembaca memahami dan menyelesaikan masalah ini dengan lebih baik.

Analisis sebab:
Pengecualian penuding nol biasanya disebabkan oleh situasi berikut:

  1. Objek tidak dimulakan: Sebelum menggunakan objek, ia mesti dimulakan. Jika objek tidak diberikan sebarang nilai atau pembina tidak dipanggil untuk permulaan, pengecualian penunjuk nol berlaku apabila mengakses pembolehubah ahli atau kaedah objek.

Contoh kod 1:

String str;
System.out.println(str.length()); // 空指针异常
Salin selepas log masuk
  1. Rujukan objek adalah batal: Jika anda menetapkan rujukan objek kepada null dan cuba mengakses pembolehubah ahli atau kaedah objek melalui rujukan, pengecualian penuding nol juga akan berlaku.

Contoh kod 2:

String str = null;
System.out.println(str.length()); // 空指针异常
Salin selepas log masuk
  1. Nilai pulangan kaedah adalah batal: Apabila kaedah tidak mempunyai nilai pulangan, atau nilai pulangan adalah batal, pengecualian penuding nol juga akan dilemparkan apabila kaedah dipanggil dan cuba menggunakan nilai pulangan.

Contoh kod 3:

String getValue() {
    return null;
}

String str = getValue();
System.out.println(str.length()); // 空指针异常
Salin selepas log masuk

Penyelesaian:
Untuk masalah di atas, berikut adalah beberapa penyelesaian biasa:

  1. Periksa sama ada objek itu kosong: sebelum mengakses objek, tentukan dahulu sama ada objek itu kosong, anda boleh gunakan syarat Pernyataan penghakiman (jika pernyataan) untuk dicapai.

Contoh kod 4:

String str = null;
if (str != null) {
    System.out.println(str.length());
}
Salin selepas log masuk
  1. Memulakan objek: Pastikan untuk memulakan objek sebelum menggunakannya Anda boleh memulakan objek melalui pembina, nilai pulangan kaedah atau penetapan langsung.

Contoh kod 5:

String str = new String("Hello");
System.out.println(str.length());
Salin selepas log masuk
  1. Gunakan pernyataan cuba-tangkap: Dalam blok kod yang boleh menyebabkan pengecualian penuding nol, gunakan pernyataan cuba-tangkap untuk menangkap pengecualian dan mengendalikannya dengan sewajarnya untuk mengelakkan ranap program.

Contoh kod 6:

String str = null;
try {
    System.out.println(str.length());
} catch (NullPointerException e) {
    System.out.println("空指针异常:" + e.getMessage());
}
Salin selepas log masuk
  1. Hakim cepat sebelum merujuk objek: Gunakan kelas Pilihan Java 8 untuk menilai dengan cepat sama ada objek itu kosong dan mengendalikannya dengan sewajarnya.

Contoh kod 7:

Optional<String> optional = Optional.ofNullable(null);
optional.ifPresent(str -> System.out.println(str.length()));
Salin selepas log masuk

Ringkasan:
Dengan menggunakan penyelesaian di atas, kejadian pengecualian penunjuk nol boleh dielakkan. Walau bagaimanapun, anda masih perlu mengendalikan rujukan objek dan nilai pulangan kaedah dengan berhati-hati dalam kod anda untuk memastikan pengecualian penuding nol yang tidak perlu dielakkan. Menguasai kemahiran ini akan menjadikan kita lebih fleksibel dan cekap dalam pengaturcaraan Java.

Atas ialah kandungan terperinci Cara Membetulkan: Ralat Masa Jalan Java: Pengecualian Penunjuk Null. 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