Annotation Type Advice.Thrown


  • @Documented
    @Retention(RUNTIME)
    @Target(PARAMETER)
    public static @interface Advice.Thrown

    Indicates that the annotated parameter should be mapped to the Throwable thrown by the instrumented method or to null if the method returned regularly. Note that the Java runtime does not enforce checked exceptions. In order to capture any error, the parameter type must therefore be of type Throwable. By assigning another value or null to this parameter, a thrown exception can be suppressed.

    Note: This annotation must only be used on exit advice methods.

    See Also:
    Advice, Advice.OnMethodExit
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      boolean readOnly
      Indicates if it is possible to write to this parameter.
      Assigner.Typing typing
      Determines the typing that is applied when assigning the captured Throwable to the annotated parameter.
    • Element Detail

      • readOnly

        boolean readOnly

        Indicates if it is possible to write to this parameter. If this property is set to false, it is illegal to write to the annotated parameter. If this property is set to true, the annotated parameter can either be set to null to suppress an exception that was thrown by the adviced method or it can be set to any other exception that will be thrown after the advice method returned.

        If an exception is suppressed, the default value for the return type is returned from the method, i.e. 0 for any numeric type and null for a reference type. The default value can be replaced via the Advice.Return annotation.

        Returns:
        true if this parameter is read-only.
        Default:
        true
      • typing

        Assigner.Typing typing
        Determines the typing that is applied when assigning the captured Throwable to the annotated parameter.
        Returns:
        The typing to apply when assigning the annotated parameter.
        Default:
        net.bytebuddy.implementation.bytecode.assign.Assigner.Typing.DYNAMIC