public class ExceptionMethod extends Object implements Implementation, ByteCodeAppender
Modifier and Type | Class and Description |
---|---|
static interface |
ExceptionMethod.ConstructionDelegate
A construction delegate is responsible for calling a Throwable's constructor.
|
Implementation.Composable, Implementation.Compound, Implementation.Context, Implementation.Simple, Implementation.SpecialMethodInvocation, Implementation.Target
ByteCodeAppender.Compound, ByteCodeAppender.Simple, ByteCodeAppender.Size
Constructor and Description |
---|
ExceptionMethod(TypeDescription throwableType,
ExceptionMethod.ConstructionDelegate constructionDelegate)
Creates a new instance of an implementation for throwing throwables.
|
Modifier and Type | Method and Description |
---|---|
ByteCodeAppender |
appender(Implementation.Target implementationTarget)
Creates a byte code appender that determines the implementation of the instrumented type's methods.
|
ByteCodeAppender.Size |
apply(MethodVisitor methodVisitor,
Implementation.Context implementationContext,
MethodDescription instrumentedMethod)
Applies this byte code appender to a type creation process.
|
boolean |
equals(Object other) |
int |
hashCode() |
InstrumentedType |
prepare(InstrumentedType instrumentedType)
Prepares a given instrumented type.
|
static Implementation |
throwing(Class<? extends Throwable> exceptionType)
Creates an implementation that creates a new instance of the given isThrowable type on each method invocation
which is then thrown immediately.
|
static Implementation |
throwing(Class<? extends Throwable> exceptionType,
String message)
Creates an implementation that creates a new instance of the given isThrowable type on each method invocation
which is then thrown immediately.
|
static Implementation |
throwing(TypeDescription exceptionType)
Creates an implementation that creates a new instance of the given isThrowable type on each method invocation
which is then thrown immediately.
|
static Implementation |
throwing(TypeDescription exceptionType,
String message)
Creates an implementation that creates a new instance of the given isThrowable type on each method invocation
which is then thrown immediately.
|
String |
toString() |
public ExceptionMethod(TypeDescription throwableType, ExceptionMethod.ConstructionDelegate constructionDelegate)
throwableType
- The type of the exception to be thrown.constructionDelegate
- A delegate that is responsible for calling the isThrowable's constructor.public static Implementation throwing(Class<? extends Throwable> exceptionType)
exceptionType
- The type of the isThrowable.public static Implementation throwing(TypeDescription exceptionType)
exceptionType
- The type of the isThrowable.public static Implementation throwing(Class<? extends Throwable> exceptionType, String message)
String
as its argument.exceptionType
- The type of the isThrowable.message
- The string that is handed to the constructor. Usually an exception message.public static Implementation throwing(TypeDescription exceptionType, String message)
String
as its argument.exceptionType
- The type of the isThrowable.message
- The string that is handed to the constructor. Usually an exception message.public InstrumentedType prepare(InstrumentedType instrumentedType)
InstrumentedType.Prepareable
prepare
in interface InstrumentedType.Prepareable
instrumentedType
- The instrumented type in its current form.public ByteCodeAppender appender(Implementation.Target implementationTarget)
Implementation
appender
in interface Implementation
implementationTarget
- The target of the current implementation.InstrumentedType.Prepareable.prepare(InstrumentedType)
.public ByteCodeAppender.Size apply(MethodVisitor methodVisitor, Implementation.Context implementationContext, MethodDescription instrumentedMethod)
ByteCodeAppender
apply
in interface ByteCodeAppender
methodVisitor
- The method visitor to which the byte code appender writes its code to.implementationContext
- The implementation context of the current type creation process.instrumentedMethod
- The method that is the target of the instrumentation.Copyright © 2014–2017. All rights reserved.