Package net.bytebuddy.asm
Class Advice.AssignReturned.ExceptionHandler
- java.lang.Object
-
- net.bytebuddy.asm.Advice.AssignReturned.ExceptionHandler
-
- All Implemented Interfaces:
StackManipulation
- Enclosing class:
- Advice.AssignReturned
@Enhance protected static class Advice.AssignReturned.ExceptionHandler extends java.lang.Object implements StackManipulation
An exception handler to handle exceptions during assignment.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
Advice.AssignReturned.ExceptionHandler.Factory
A factory for wrapping an assignment with an exception handler, if appropriate.-
Nested classes/interfaces inherited from interface net.bytebuddy.implementation.bytecode.StackManipulation
StackManipulation.AbstractBase, StackManipulation.Compound, StackManipulation.Illegal, StackManipulation.Simple, StackManipulation.Size, StackManipulation.Trivial
-
-
Field Summary
Fields Modifier and Type Field Description private StackManipulation
exceptionHandler
The exception handler to apply.private TypeDescription
exceptionType
The exception type to handle.private StackManipulation
stackManipulation
The stack manipulation that represents the assignment.private Advice.StackMapFrameHandler.ForPostProcessor
stackMapFrameHandler
The stack map frame handler to use.
-
Constructor Summary
Constructors Modifier Constructor Description protected
ExceptionHandler(StackManipulation stackManipulation, StackManipulation exceptionHandler, TypeDescription exceptionType, Advice.StackMapFrameHandler.ForPostProcessor stackMapFrameHandler)
Creates a new exception handler for an assignment.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StackManipulation.Size
apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext)
Applies the stack manipulation that is described by this instance.boolean
isValid()
Determines if this stack manipulation is valid.
-
-
-
Field Detail
-
stackManipulation
private final StackManipulation stackManipulation
The stack manipulation that represents the assignment.
-
exceptionHandler
private final StackManipulation exceptionHandler
The exception handler to apply.
-
exceptionType
private final TypeDescription exceptionType
The exception type to handle.
-
stackMapFrameHandler
private final Advice.StackMapFrameHandler.ForPostProcessor stackMapFrameHandler
The stack map frame handler to use.
-
-
Constructor Detail
-
ExceptionHandler
protected ExceptionHandler(StackManipulation stackManipulation, StackManipulation exceptionHandler, TypeDescription exceptionType, Advice.StackMapFrameHandler.ForPostProcessor stackMapFrameHandler)
Creates a new exception handler for an assignment.- Parameters:
stackManipulation
- The stack manipulation that represents the assignment.exceptionHandler
- The exception handler to apply.exceptionType
- The exception type to handle.stackMapFrameHandler
- The stack map frame handler to use.
-
-
Method Detail
-
isValid
public boolean isValid()
Determines if this stack manipulation is valid.- Specified by:
isValid
in interfaceStackManipulation
- Returns:
- If
false
, this manipulation cannot be applied and should throw an exception.
-
apply
public StackManipulation.Size apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext)
Applies the stack manipulation that is described by this instance.- Specified by:
apply
in interfaceStackManipulation
- Parameters:
methodVisitor
- The method visitor used to write the method implementation to.implementationContext
- The context of the current implementation.- Returns:
- The changes to the size of the operand stack that are implied by this stack manipulation.
-
-