Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menyelesaikan pengecualian penunjuk nol
Penyelesaian pengecualian penunjuk null: 1. Gunakan pernyataan if atau operator ternary untuk menyemak sama ada objek kosong 2. Gunakan operator panggilan selamat untuk memeriksa sama ada objek itu kosong sebelum memanggil kaedah objek atau mengakses sifat objek itu; 3. Menggunakan penegasan, anda boleh menggunakan pernyataan tegas untuk memeriksa sama ada objek itu kosong, pengecualian akan dilemparkan 4. Gunakan kelas Pilihan untuk membungkus objek untuk menunjukkan bahawa objek itu mungkin kosong; . Lulus Tambah semakan penuding nol, mulakan objek, dan reka bentuk logik kod secara rasional untuk mengelakkan kemungkinan pengecualian penuding nol.
Sistem pengendalian tutorial ini: sistem Windows 10, komputer Dell G3.
Pengecualian Penunjuk Null ialah pengecualian masa jalan biasa, yang menunjukkan bahawa rujukan kepada objek nol digunakan dalam program. Apabila kita cuba mengendalikan objek nol, NullPointerException dilemparkan.
Objek tidak dimulakan: Apabila kita mengisytiharkan pembolehubah objek tetapi tiada ruang memori diperuntukkan untuknya, rujukan objek adalah batal dan jika kita cuba mengendalikannya , pengecualian penuding nol akan dilemparkan.
Objek dimusnahkan: Apabila kita masih mengendalikan objek selepas ia dimusnahkan, pengecualian penuding nol akan dilemparkan.
Rujukan objek adalah batal: Apabila kita menetapkan rujukan objek kepada nol dan kemudian cuba mengendalikannya, Pengecualian Penunjuk Null dilemparkan.
Semak sama ada objek itu batal: Sebelum menggunakan objek, semak sama ada ia batal. Anda boleh menilai dengan menggunakan pernyataan if atau operator ternary.
if (object != null) { // 对象不为空,进行操作 }
Gunakan operator panggilan selamat (?.): Operator panggilan selamat ialah gula sintaks yang memudahkan semakan penuding nol Ia boleh menyemak sama ada objek itu batal sebelum memanggil kaedahnya atau mengakses sifatnya. Jika objek adalah null, null dikembalikan tanpa membuang NullPointerException.
object?.method(); object?.property;
Menggunakan operator panggilan selamat boleh mengelakkan semakan penunjuk nol yang jelas dan menjadikan kod lebih ringkas.
Menggunakan penegasan: Penegasan ialah mekanisme yang digunakan untuk menyemak ketekalan program semasa fasa pembangunan dan ujian. Anda boleh menggunakan pernyataan assert untuk menyemak sama ada objek itu kosong Jika ia kosong, pengecualian AssertionError dilemparkan.
assert object != null : "Object cannot be null";
Dalam persekitaran pengeluaran, penegasan boleh dilumpuhkan untuk meningkatkan prestasi.
Menggunakan kelas Pilihan: Pilihan ialah kelas yang diperkenalkan dalam Java 8 untuk mengendalikan objek yang berpotensi nol. Ia boleh digunakan untuk membungkus objek untuk menunjukkan bahawa objek itu mungkin kosong. Menggunakan kelas Pilihan mengelakkan semakan penuding nol eksplisit dan menyediakan satu siri kaedah untuk mengendalikan objek yang berpotensi nol.
Optional<Object> optional = Optional.ofNullable(object); optional.ifPresent(obj -> { // 对象不为空,进行操作 });
Kelas Pilihan menyediakan pelbagai kaedah operasi, seperti orElse, orElseGet, orElseThrow, dll. Anda boleh memilih kaedah yang sesuai untuk mengendalikan objek yang mungkin kosong mengikut keperluan khusus.
Elakkan kemungkinan pengecualian penuding nol: Semasa proses pengaturcaraan, kita harus cuba mengelakkan berlakunya pengecualian penuding nol. Anda boleh mengurangkan berlakunya pengecualian penuding nol dengan menambahkan semakan penuding nol, memulakan objek dan mereka bentuk logik kod secara rasional.
Kunci untuk menyelesaikan pengecualian penunjuk nol adalah dengan melakukan semakan penunjuk nol dan mengambil langkah yang sesuai untuk menangani objek nol. Melalui reka bentuk kod yang munasabah dan tabiat pengaturcaraan, pengecualian penunjuk nol boleh dielakkan dan diselesaikan dengan berkesan, dan keteguhan dan kestabilan program boleh dipertingkatkan.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan pengecualian penunjuk nol. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!