Rumah  >  Artikel  >  Java  >  Java NullPointerException

Java NullPointerException

王林
王林asal
2024-08-30 16:13:03834semak imbas

NullPointer Exception ialah pengecualian dalam java yang sangat kerap timbul dengan pengaturcara. Ia adalah pengecualian masa jalan yang berlaku apabila instantiasi objek tidak betul. Objek diisytiharkan sebagai mempunyai nilai nol di dalamnya. Pengecualian penunjuk nol hanya menandakan bahawa ia cuba memanggil objek dengan rujukan yang mempunyai nilai nol di dalamnya. Perkara yang paling penting untuk diingat ialah pengecualian penunjuk nol tidak berkaitan dengan penunjuk kerana bahasa java tidak menyokong konsep penunjuk; sebaliknya, ia dikaitkan dengan rujukan objek.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Sintaks:

Tiada sintaks khusus untuk pengecualian penuding Null untuk ditentukan sebagai ralat masa jalan; ia secara automatik timbul dan menjadi kelihatan untuk digunakan.

Pengecualian tangkapan boleh diisytiharkan dan kemudian dilemparkan ke titik dan nyahpepijat untuk Pengecualian NullPointer. Ia adalah satu perkara yang sangat membosankan untuk nyahpepijat untuk NullPointerException. Ia diperlukan untuk memastikan bahawa instantiasi objek dan pengisytiharan rujukan adalah betul pada masa pelaksanaan.

try {
Object obj1 = new Object(); // Instantiate a new object for the class as reference
Obj1=null; //Provide null value to the object created
Logging.log(String.format(“get the object value”, obj1.object1for reference));
}
catch(java.lang.NullPointerException exception)
{
Logging.log(exception);
}
catch(Throwable exception)
{
Logging.log(exception,false);
}

Bagaimana NullPointerException Berfungsi dalam Java?

NullPointerException dalam Java ialah pengecualian yang sama sekali bukan ralat yang lebih baik untuk pembangun. Sangat sukar untuk mencari pengecualian kerana ia berlaku setiap kali pada masa larian. Oleh itu, mencari pengecualian sedemikian adalah tugas yang membosankan. Pengaturcara mengambil masa berjam-jam untuk mengetahui NullPointerException.

Ia timbul apabila percubaan luar biasa dibuat untuk menetapkan objek yang ditakrifkan dengan nol di mana-mana apabila objek diperlukan untuk sesuatu perkara lain. Semua ralat java, termasuk NullPointerException, berlaku atas sebab tertentu seperti:

  • Apabila java.lang.antara muka boleh buang diisytiharkan ia akan membuang semua kemungkinan ralat java dan seterusnya akan dilanjutkan oleh kelas yang diwarisi.
  • lang.Exception kemudian mendapat warisan daripada java.lang.throwable.
  • kelas lang.throwable memanjangkan java.lang.exception.
  • Malah Java.lang.RuntimeException juga berlaku disebabkan oleh kelas yang diwarisi ini.
  • Akhirnya, java.lang.NullPointerException akan diwarisi daripada kelas java.lang.RuntimeException.

Seperti yang dinyatakan dengan jelas dan dilihat bahawa NullPointerException akan diwarisi daripada java.lang.RuntimeException isu ini akan timbul apabila terdapat pelaksanaan aplikasi pada masa penyusunan dan pelaksanaan aplikasi. Juga, apabila ia cuba mengakses terus medan, kaedah atau rujukan objek yang salah pada masa instantiasi, maka ia sangat diperlukan untuk membuang java.lang.NullPointerException. Menambah pembalak dan kemudian mencipta objek tiruan selanjutnya dan kemudian memanggil contoh kaedah objek yang diperuntukkan nol juga membantu dalam penyahpepijatan kod yang betul dan mencari punca utama NullPointerException dan baris yang menunjuk kepada ralat dan pengecualian. Oleh itu, ia merupakan kaedah penyelesaian masalah dan penyahpepijatan yang sangat konvensional untuk memahami ralat java yang berlaku pada baris tertentu.

Pembina Java NullPointerException

Terdapat pembina khusus tertentu yang ditakrifkan dan diisytiharkan dengan kaedah NullPointerException, iaitu seperti berikut:

1. NullPointerException()

Pembina ini digunakan untuk membina NullPointerException tanpa mesej atau penjelasan terperinci. Ia boleh dianggap sebagai pengecualian kosong atau batal yang tidak disyorkan mengikut keperluan.

2. NullPointerException(String s)

Pembina ini berkelakuan bercanggah dengan NullPointerException() kerana ia termasuk sedikit mesej terperinci yang menyebabkan di lokasi yang ditentukan, dan ia akan melibatkan hujah yang boleh digunakan pada masa membina pengecualian penuding nol. Argumen String s bertanggungjawab untuk mencipta pengecualian penuding nol dengan mesej terperinci.

Contoh untuk Melaksanakan Java NullPointerException

Di bawah ialah contoh Java NullPointerException:

Contoh #1

Atur cara ini digunakan untuk menunjukkan seruan kaedah yang tidak sah pada masa pelaksanaan, yang menghasilkan NullPointerException, yang tidak diperlukan.

Kod:

public class Null_Pointer_Excptn {
public static void main(String[] args) {
String strng = null;
try
{
if (strng.equals("monkey"))
System.out.println("Let us take a value which needs to be similar");
else
System.out.println("Otherwise it will not take a similar and equal value.");
}
catch(NullPointerException e)
{
System.out.println("It is a need to catch the null pointer exception.");
}
}
}

Output:

Java NullPointerException

Contoh #2

Program ini menggambarkan program java, yang mengelakkan penciptaan NullPointerException kerana ia bukan kaedah konvensional.

Kod:

public class Null_Pointer_Excptn_Avoid {
public static void main(String[] args) {
String strng2 = null;
try
{
if ("avoid_null".equals(strng2))
System.out.println("Coming out to be equal");
else
System.out.println("It is not at all coming out to be equal");
}
catch(NullPointerException e)
{
System.out.println("Catch the null pointer Exception to get a clarification.");
}
}
}

Output:

Java NullPointerException

Example #3

This program illustrates that the NullPointerException can be avoided using the proper object verification before initialization.

Code:

public class Good_Null_Pntr_Excpn {
public static void main(String[] args) {
String store = "Learning";
try
{
System.out.println(getLength(store));
}
catch(IllegalArgumentException e)
{
System.out.println("Need to catch the definition of illegalArgument.");
}
store = "Educba";
try
{
System.out.println(getLength(store));
}
catch(IllegalArgumentException e)
{
System.out.println("Need to catch the definition of illegalArgument.");
}
store = null;
try
{
System.out.println(getLength(store));
}
catch(IllegalArgumentException e)
{
System.out.println("Need to catch the definition of illegalArgument.");
}
}
public static int getLength(String store)
{
if (store == null)
throw new IllegalArgumentException("Need to catch the definition of illegalArgument.");
return store.length();
}
}

Output:

Java NullPointerException

How to Avoid NullPointerException?

As it is not a good practice to get NullPointerException as it makes the entire codebase cumbersome and consumes time for the programmers to figure out the root cause of the NullPointerException.

Therefore, it is very much needed to avoid these exceptions which can make sure using the following ways:

  • By comparing a string with the literals.
  • By keeping a check on the passed arguments or parameters being passed from the method.
  • By making use of the ternary operator.

Conclusion

Java NullPointerException is an exception which is not a good option and is recommended not to occur as it consumes a lot of time. Debugging and troubleshooting become difficult; therefore, it must keep in mind that before the initialization of the object, the reference of the object must be proper. Therefore, the reference of the object’s null value should be proper, and then it can be avoided.

Atas ialah kandungan terperinci Java NullPointerException. 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
Artikel sebelumnya:BinarySearch() dalam JavaArtikel seterusnya:BinarySearch() dalam Java