<< Chapter < Page | Chapter >> Page > |
An IndexOutOfBounds exception
As a result, the program throws an IndexOutOfBounds exception. The error produced under JDK 1.3 looks something like the following:
Exception in thread "main" java.lang.IndexOutOfBoundsException:
Index: 2, Size: 2at java.util.ArrayList.RangeCheck
(Unknown Source)at java.util.ArrayList.get
(Unknown Source)at Worker.doIt(Ap147.java:27)
at Ap147.main(Ap147.java:16)
Attempting to access an element with a negative index value would produce the same result.
An ArrayIndexOutOfBounds exception
A similar result occurs if you attempt to access an element in an ordinary array object outside the bounds of the index values determined by the size ofthe array. However, in that case, the name of the exception is ArrayIndexOutOfBounds .
B. Runtime Error
The infamous NullPointerException
Interestingly, one of the first things that you read when you start reading Java books, is that there are no pointers in Java . It is likely that shortly thereafter when you begin writing, compiling, and executing simple Javaprograms, one of your programs will abort with an error message looking something like that shown below :
Exception in thread "main" java.lang.NullPointerException
atWorker.doIt(Ap146.java:23)
atAp146.main(Ap146.java:16)
What is a NullPointerException?
Stated simply, a NullPointerException occurs when you attempt to perform some operation on an object using a reference that doesn'trefer to an object.
That is the case in this program
The following code fragment declares a local reference variable and initializes its value to null .
void doIt(){
ArrayList ref = null;
(A reference variable in Java must either refer to a valid object, or specifically refer to no object (null). Unlike a pointer in C and C++, aJava reference variable cannot refer to something arbitrary.)
In this case, null means that the reference variable doesn't refer to a valid object.
No ArrayList object
Note that the code in the above fragment does not instantiate an object of the class ArrayList and assign that object's reference to the reference variable.
(The reference variable doesn't contain a reference to an object instantiated from the class named ArrayList , or an object instantiated from any class for that matter.)
Call a method on the reference
However, the code in the next fragment attempts to add a String object's reference to a nonexistent ArrayList object by calling the add method on the reference containing null.
ref.add("ABC ");
This results in the NullPointerException shown earlier .
What can you do with a null reference?
The only operation that you can perform on a reference variable containing null is to assign an object's reference to the variable. Any other attemptedoperation will result in a NullPointerException .
C. ABC DEF GHI
The purpose of this program is to
Program contains an import directive
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?