Java Reference
In-Depth Information
15.6. Normal and Abrupt Completion of Evaluation
Every expression has a normal mode of evaluation in which certain computational steps are
carried out. The following sections describe the normal mode of evaluation for each kind
of expression.
If all the steps are carried out without an exception being thrown, the expression is said to
complete normally .
If, however, evaluation of an expression throws an exception, then the expression is said to
complete abruptly . An abrupt completion always has an associated reason, which is always
a throw with a given value.
Run-time exceptions are thrown by the predefined operators as follows:
• A class instance creation expression (§ 15.9 ) , array creation expression (§ 15.10 ),
array initializer expression (§ 10.6 ) , or string concatenation operator expression
15.18.1 ) throws an OutOfMemoryError if there is insufficient memory available.
• An array creation expression (§ 15.10 ) throws a NegativeArraySizeException if the
value of any dimension expression is less than zero.
• A field access expression (§ 15.11 ) throws a NullPointerException if the value of the
object reference expression is null .
• A method invocation expression (§ 15.12 ) that invokes an instance method throws
a NullPointerException if the target reference is null .
• An array access expression (§ 15.13 ) throws a NullPointerException if the value of the
array reference expression is null .
• An array access expression (§ 15.13 ) throws an ArrayIndexOutOfBoundsException if the
value of the array index expression is negative or greater than or equal to the length
of the array.
• A cast expression (§ 15.16 ) throws a ClassCastException if a cast is found to be imper-
missible at run time.
• An integer division (§ 15.17.2 ) or integer remainder (§ 15.17.3 ) operator throws an
ArithmeticException if the value of the right-hand operand expression is zero.
• An assignment to an array component of reference type (§ 15.26.1 ) , a method in-
vocation expression (§ 15.12 ), or a prefix or postfix increment (§ 15.14.2 , § 15.15.1 )
or decrement operator (§ 15.14.3 , § 15.15.2 ) may all throw an OutOfMemoryError as a
result of boxing conversion (§ 5.1.7 ).
Search WWH ::




Custom Search