3.12. Throwing and Handling Exceptions

Exceptions are thrown from programs using the throw keyword. Its compilation is simple:

void cantBeZero(int i) throws TestExc {    if (i == 0) {        throw new TestExc();    }}

becomes:

Method void cantBeZero(int)0   iload_1             // Push argument 1 (i)1   ifne 12             // If i==0, allocate instance and throw4   new #1              // Create instance of TestExc7   dup                 // One reference goes to its constructor8   invokespecial #7    // Method TestExc.<init>()V11  athrow              // Second reference is thrown12  return              // Never get here if we threw TestExc

Compilation of try-catch constructs is straightforward. For example:

void catchOne() {    try {        tryItOut(); ...

Get The Java® Virtual Machine Specification, Java SE 7 Edition, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.