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 
nullobject. - Accessing or modifying the field of a 
nullobject. - Taking the length of 
nullas if it were an array. - Accessing or modifying the slots of 
nullas if it were an array. - Throwing 
nullas if it were aThrowablevalue. 
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