|
What this is
Other links
The source code/* * ExceptionTableEntry.java * * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun * Microsystems, Inc. All Rights Reserved. * * Contributor(s): Thomas Ball * * Version: $Revision: 1.4 $ */ package org.netbeans.modules.classfile; import java.io.DataInputStream; import java.io.IOException; /** * An entry in the exception table of a method's code attribute. * * @author Thomas Ball */ public final class ExceptionTableEntry { int startPC; int endPC; int handlerPC; CPClassInfo catchType; // may be null for "finally" exception handler static ExceptionTableEntry[] loadExceptionTable(DataInputStream in, ConstantPool pool) throws IOException { int n = in.readUnsignedShort(); ExceptionTableEntry[] exceptions = new ExceptionTableEntry[n]; for (int i = 0; i < n; i++) exceptions[i] = new ExceptionTableEntry(in, pool); return exceptions; } /** Creates new ExceptionTableEntry */ ExceptionTableEntry(DataInputStream in, ConstantPool pool) throws IOException { loadExceptionEntry(in, pool); } private void loadExceptionEntry(DataInputStream in, ConstantPool pool) throws IOException { startPC = in.readUnsignedShort(); endPC = in.readUnsignedShort(); handlerPC = in.readUnsignedShort(); int typeIndex = in.readUnsignedShort(); if (typeIndex != 0) // may be 0 for "finally" exception handler try { catchType = pool.getClass(typeIndex); } catch (IndexOutOfBoundsException e) { System.err.println("invalid catchType (" + typeIndex + ") in exception table entry"); } } /** * Returns the beginning offset into the method's bytecodes of this * exception handler. */ public final int getStartPC() { return startPC; } /** * Returns the ending offset into the method's bytecodes of this * exception handler, or the length of the bytecode array if the * handler supports the method's last bytecodes (JVM 4.7.3). */ public final int getEndPC() { return endPC; } /** * Returns the starting offset into the method's bytecodes of the * exception handling code. */ public final int getHandlerPC() { return handlerPC; } /** * Returns the type of exception handler, or |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.