Package net.bytebuddy.asm
Class Advice.AdviceVisitor.WithExitAdvice.WithExceptionHandling
java.lang.Object
org.objectweb.asm.MethodVisitor
net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor
net.bytebuddy.asm.Advice.AdviceVisitor
net.bytebuddy.asm.Advice.AdviceVisitor.WithExitAdvice
net.bytebuddy.asm.Advice.AdviceVisitor.WithExitAdvice.WithExceptionHandling
- All Implemented Interfaces:
Advice.Dispatcher.RelocationHandler.Relocation
- Enclosing class:
Advice.AdviceVisitor.WithExitAdvice
protected static class Advice.AdviceVisitor.WithExitAdvice.WithExceptionHandling
extends Advice.AdviceVisitor.WithExitAdvice
An advice visitor that captures exceptions by weaving try-catch blocks around user code.
-
Nested Class Summary
Nested classes/interfaces inherited from class net.bytebuddy.asm.Advice.AdviceVisitor.WithExitAdvice
Advice.AdviceVisitor.WithExitAdvice.WithExceptionHandling, Advice.AdviceVisitor.WithExitAdvice.WithoutExceptionHandling
Nested classes/interfaces inherited from class net.bytebuddy.asm.Advice.AdviceVisitor
Advice.AdviceVisitor.WithExitAdvice, Advice.AdviceVisitor.WithoutExitAdvice
Nested classes/interfaces inherited from interface net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.Relocation
Advice.Dispatcher.RelocationHandler.Relocation.ForLabel
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.objectweb.asm.Label
Indicates the exception handler.private final TypeDescription
The type of the handled throwable type for which this advice is invoked.protected final org.objectweb.asm.Label
Indicates the start of the user method.Fields inherited from class net.bytebuddy.asm.Advice.AdviceVisitor.WithExitAdvice
returnHandler
Fields inherited from class net.bytebuddy.asm.Advice.AdviceVisitor
argumentHandler, instrumentedMethod, methodExit, methodSizeHandler, stackMapFrameHandler
Fields inherited from class org.objectweb.asm.MethodVisitor
api, mv
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
WithExceptionHandling
(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, Assigner assigner, StackManipulation exceptionHandler, TypeDescription instrumentedType, MethodDescription instrumentedMethod, Advice.Dispatcher.Resolved.ForMethodEnter methodEnter, Advice.Dispatcher.Resolved.ForMethodExit methodExit, int writerFlags, int readerFlags, TypeDescription throwable) Creates a new advice visitor that captures exception by weaving try-catch blocks around user code. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Invoked after the exit advice method has returned.protected void
Invoked when the user method's exception handler (if any) is supposed to be prepared.protected void
Invoked after the user method has returned.protected void
Writes the advice for entering the instrumented method.Methods inherited from class net.bytebuddy.asm.Advice.AdviceVisitor.WithExitAdvice
apply, onUserEnd, onVisitInsn
Methods inherited from class net.bytebuddy.asm.Advice.AdviceVisitor
onAfterExceptionTable, onVisitFrame, onVisitIincInsn, onVisitVarInsn, visitLocalVariable, visitLocalVariableAnnotation, visitMaxs
Methods inherited from class net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor
onVisitFieldInsn, onVisitIntInsn, onVisitInvokeDynamicInsn, onVisitJumpInsn, onVisitLabel, onVisitLdcInsn, onVisitLookupSwitchInsn, onVisitMethodInsn, onVisitMethodInsn, onVisitMultiANewArrayInsn, onVisitTableSwitchInsn, onVisitTypeInsn, visitFieldInsn, visitFrame, visitIincInsn, visitInsn, visitIntInsn, visitInvokeDynamicInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLookupSwitchInsn, visitMethodInsn, visitMethodInsn, visitMultiANewArrayInsn, visitTableSwitchInsn, visitTypeInsn, visitVarInsn
Methods inherited from class org.objectweb.asm.MethodVisitor
getDelegate, visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitInsnAnnotation, visitLineNumber, visitParameter, visitParameterAnnotation, visitTryCatchAnnotation, visitTryCatchBlock, visitTypeAnnotation
-
Field Details
-
throwable
The type of the handled throwable type for which this advice is invoked. -
exceptionHandler
private final org.objectweb.asm.Label exceptionHandlerIndicates the exception handler. -
userStart
protected final org.objectweb.asm.Label userStartIndicates the start of the user method.
-
-
Constructor Details
-
WithExceptionHandling
protected WithExceptionHandling(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, Assigner assigner, StackManipulation exceptionHandler, TypeDescription instrumentedType, MethodDescription instrumentedMethod, Advice.Dispatcher.Resolved.ForMethodEnter methodEnter, Advice.Dispatcher.Resolved.ForMethodExit methodExit, int writerFlags, int readerFlags, TypeDescription throwable) Creates a new advice visitor that captures exception by weaving try-catch blocks around user code.- Parameters:
methodVisitor
- The method visitor for the instrumented method.implementationContext
- The implementation context to use.assigner
- The assigner to use.exceptionHandler
- The stack manipulation to apply within a suppression handler.instrumentedType
- A description of the instrumented type.instrumentedMethod
- A description of the instrumented method.methodEnter
- The dispatcher to be used for method enter.methodExit
- The dispatcher to be used for method exit.writerFlags
- The ASM writer flags that were set.readerFlags
- The ASM reader flags that were set.throwable
- The type of the handled throwable type for which this advice is invoked.
-
-
Method Details
-
onUserPrepare
protected void onUserPrepare()Description copied from class:Advice.AdviceVisitor
Invoked when the user method's exception handler (if any) is supposed to be prepared.- Specified by:
onUserPrepare
in classAdvice.AdviceVisitor
-
onUserStart
protected void onUserStart()Description copied from class:Advice.AdviceVisitor
Writes the advice for entering the instrumented method.- Specified by:
onUserStart
in classAdvice.AdviceVisitor
-
onUserReturn
protected void onUserReturn()Description copied from class:Advice.AdviceVisitor.WithExitAdvice
Invoked after the user method has returned.- Specified by:
onUserReturn
in classAdvice.AdviceVisitor.WithExitAdvice
-
onExitAdviceReturn
protected void onExitAdviceReturn()Description copied from class:Advice.AdviceVisitor.WithExitAdvice
Invoked after the exit advice method has returned.- Specified by:
onExitAdviceReturn
in classAdvice.AdviceVisitor.WithExitAdvice
-