public class NullPointerException
extends RuntimeException
Thrown when an application attempts to use null in a case where an object is required. These include:
- Calling the instance method of a
null
object. - Accessing or modifying the field of a
null
object. - Taking the length of
null
as if it were an array. - Accessing or modifying the slots of
null
as if it were an array. - Throwing
null
as if it were aThrowable
value.
Examples for NullPointerException
1) Calling the instance method of a null object.
public class Main {
public static void main(String args[]) {
String s = null;
System.out.println(s.length());
}
}
The output is
Exception in thread "main" java.lang.NullPointerException
at Main.main(Main.java:8)
public class Main {
public static void main(String args[]) {
Student s = null;
System.out.println(s.rollno);
}
}
class Student {
int rollno;
String name;
String address;
}
The output is
Exception in thread "main" java.lang.NullPointerException
at Main.main(Main.java:6)
3) Taking the length of
null
as if it were an array.
public class Main {
public static void main(String args[]) {
int arr[] = null;
System.out.println(arr.length);
}
}
The output is
Exception in thread "main" java.lang.NullPointerException
at Main.main(Main.java:6)
4) Accessing or modifying the slots of
null
as if it were an array.
public class Main {
public static void main(String args[]) {
int arr[] = null;
System.out.println(arr[0]);
}
}
The output is
Exception in thread "main" java.lang.NullPointerException
at Main.main(Main.java:6)
5) Throwing
null
as if it were a Throwable
value.
public class Main {
public static void main(String args[]) throws Exception {
Exception myException =null;
throw myException;
}
}
The output is
Exception in thread "main" java.lang.NullPointerException
at Main.main(Main.java:7)
How to avoid NullPointerException
To avoid the possibility of NullPointerException always use a null check before performing any operations with an object reference.See one exception
public class Main {
public static void main(String args[]){
String s = null;
if (s != null)
System.out.println("String s length is: " + s.length());
}
}
How to Debug NullPointerException
Suppose you want to override the equals method in such a way that it throws NullPointerException when its argument is null.See the implementation below.
public class Main {
public static void main(String args[]) throws Exception {
Student s1 = new Student(10, "John");
Student s2 = null;
System.out.println(s1.equals(s2));
}
}
class Student {
int rollno;
String name;
Student(int rollno, String name) {
this.rollno = rollno;
this.name = name;
}
boolean equals(Student obj) {
if (obj == null)
throw new NullPointerException("Comparing object is null");
return (rollno == obj.rollno && name.equals(obj.name));
}
}
The output is
Exception in thread "main" java.lang.NullPointerException: Comparing object is null
at Student.equals(Main.java:25)
at Main.main(Main.java:8)
No comments:
Post a Comment