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 interfaceAdvice.AssignReturned.ExceptionHandler.FactoryA 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 StackManipulationexceptionHandlerThe exception handler to apply.private TypeDescriptionexceptionTypeThe exception type to handle.private StackManipulationstackManipulationThe stack manipulation that represents the assignment.private Advice.StackMapFrameHandler.ForPostProcessorstackMapFrameHandlerThe stack map frame handler to use.
-
Constructor Summary
Constructors Modifier Constructor Description protectedExceptionHandler(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.Sizeapply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext)Applies the stack manipulation that is described by this instance.booleanisValid()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:
isValidin 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:
applyin 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.
-
-