Package serp.bytecode

# Class Exceptions

java.lang.Object
serp.bytecode.Attributes
serp.bytecode.Attribute
serp.bytecode.Exceptions

All Implemented Interfaces:
  `BCEntity`, `VisitAcceptor`

public class Exceptions extends Attribute
Attribute declaring the checked exceptions a method can throw.

Author:
  Abe White

## Method Summary

Modifier and Type
Method
Description
`void`
`acceptVisit(BCVisitor visit)`
Accept a visit from a `BCVisitor`, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.
`void`
`addException(Class type)`
Add an exception to those thrown by this method.
`void`
`addException(String type)`
Add an exception type to those thrown by this method.
`void`
`addException(BCClass type)`
Add an exception to those thrown by this method.
`void`
`clear()`
Clear this method of all exception declarations.
`BCClass[]`
`getExceptionBCs()`
Return bytecode for the exception types of this method, or an empty array if none.
`int[]`
`getExceptionIndexes()`
Return the indexes in the class `ConstantPool` of the `ClassEntry`s for the exception types thrown by this method, or an empty array if none.
`String[]`
`getExceptionNames()`
Return the names of the exception types for this method, or an empty array if none.
`Class[]`
`getExceptionTypes()`
Return the `Class` objects for the exception types for this method, or an empty array if none.
`BCMethod`
`getMethod()`
Return the owning method.
`boolean`
`removeException(Class type)`
Remove an exception thrown by this method.
`boolean`
`removeException(String type)`
Remove an exception type thrown by this method.
`boolean`
`removeException(BCClass type)`
Remove an exception thrown by this method.
`void`
`setExceptionIndexes(int[] exceptionIndexes)`
Set the indexes in the class `ConstantPool` of the `ClassEntry`s for the exception types thrown by this method.
`void`
`setExceptions(Class[] exceptions)`
Set the checked exceptions thrown by this method.
`void`
`setExceptions(String[] exceptions)`
Set the checked exceptions thrown by this method.
`void`
`setExceptions(BCClass[] exceptions)`
Set the checked exceptions thrown by this method.
`boolean`
`throwsException(Class type)`
Return true if the method declares that it throws the given exception type.
`boolean`
`throwsException(String type)`
Return true if the method declares that it throws the given exception type.
`boolean`
`throwsException(BCClass type)`
Return true if the method declares that it throws the given exception type.

### Methods inherited from class serp.bytecode.Attribute

`getClassLoader, getName, getNameIndex, getOwner, getPool, getProject, isValid`

### Methods inherited from class serp.bytecode.Attributes

`addAttribute, addAttribute, clearAttributes, getAttribute, getAttributes, getAttributes, removeAttribute, removeAttribute, setAttributes`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Method Details

### getMethod

public BCMethod getMethod()
Return the owning method.

### getExceptionIndexes

public int[] getExceptionIndexes()
Return the indexes in the class `ConstantPool` of the `ClassEntry`s for the exception types thrown by this method, or an empty array if none.

### setExceptionIndexes

public void setExceptionIndexes(int[] exceptionIndexes)
Set the indexes in the class `ConstantPool` of the `ClassEntry`s for the exception types thrown by this method. Use null or an empty array for none.

### getExceptionNames

public String[] getExceptionNames()
Return the names of the exception types for this method, or an empty array if none. The names will be in a form suitable for a `Class.forName(java.lang.String)` call.

### getExceptionTypes

public Class[] getExceptionTypes()
Return the `Class` objects for the exception types for this method, or an empty array if none.

### getExceptionBCs

public BCClass[] getExceptionBCs()
Return bytecode for the exception types of this method, or an empty array if none.

### setExceptions

public void setExceptions(String[] exceptions)
Set the checked exceptions thrown by this method. Use null or an empty array for none.

### setExceptions

public void setExceptions(Class[] exceptions)
Set the checked exceptions thrown by this method. Use null or an empty array for none.

### setExceptions

public void setExceptions(BCClass[] exceptions)
Set the checked exceptions thrown by this method. Use null or an empty array for none.

### clear

public void clear()
Clear this method of all exception declarations.

### removeException

public boolean removeException(String type)
Remove an exception type thrown by this method.

Returns:
  true if the method had the exception type, false otherwise

### removeException

public boolean removeException(Class type)
Remove an exception thrown by this method.

Returns:
  true if the method had the exception type, false otherwise

### removeException

public boolean removeException(BCClass type)
Remove an exception thrown by this method.

Returns:
  true if the method had the exception type, false otherwise

### addException

public void addException(String type)
Add an exception type to those thrown by this method.

### addException

public void addException(Class type)
Add an exception to those thrown by this method.

### addException

public void addException(BCClass type)
Add an exception to those thrown by this method.

### throwsException

public boolean throwsException(String type)
Return true if the method declares that it throws the given exception type.

### throwsException

public boolean throwsException(Class type)
Return true if the method declares that it throws the given exception type.

### throwsException

public boolean throwsException(BCClass type)
Return true if the method declares that it throws the given exception type.

### acceptVisit

public void acceptVisit(BCVisitor visit)
Description copied from interface: `VisitAcceptor`
Accept a visit from a `BCVisitor`, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.