Re: question about assigning null to a reference object
Patricia Shanahan wrote:
Farcus Pottysquirt wrote:
I think your example program is a bit too abstract, in real life no one
assigns null to an object and immediately invokes one of it's
non-static methods. The sort of thing I am more likely to have is ...
Thje example is from the Head First Java book. I added the getters
and setters so that I could see what things looked like when book c
was assigned to b etc. They do the c=null as part of the exercise and
I was trying to figure out how to trap the NPE when I went to do the
c.showAll();
The problem is that the JVM cannot invoke c.showAll() if c is null. The
exception is being thrown in main, from the attempt to do that
impossible invoke, not from showAll:
"Exception in thread "main" java.lang.NullPointerException
at chapter03.BookTestDrive.main(BookTestDrive.java:44)"
You would need exception handling inside main to catch it.
Patricia
But I tried exception handling in the showAll method.
try
{
System.out.print("Book Title: " + t);
System.out.print(" Author: " + a);
System.out.print(" Subject: " + s);
System.out.println(" Pages: " + p);
}
catch (NullPointerException e) {}
}
and it still died. Am I not doing it correctly or should I do it like this
public class BookTestDrive {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// snipping a bunch of stuff
c = null;
try
{
c.showAll();
} catch (NullPointerException e)
{
System.out.println("Surprise!!!);
}
}
}