Package org.springframework.aop.framework.adapter

# Class ThrowsAdviceInterceptor

java.lang.Object
org.springframework.aop.framework.adapter.ThrowsAdviceInterceptor

All Implemented Interfaces:
  `Advice`, `Interceptor`, `MethodInterceptor`, `AfterAdvice`

public class ThrowsAdviceInterceptor extends Object implements MethodInterceptor, AfterAdvice
Interceptor to wrap an after-throwing advice.

The signatures on handler methods on the `ThrowsAdvice` implementation method argument must be of the form:
`void afterThrowing([Method, args, target], ThrowableSubclass);`

Only the last argument is required.

Some examples of valid methods would be:

    public void afterThrowing(Exception ex)

    public void afterThrowing(RemoteException)

    public void afterThrowing(Method method, Object[] args, Object target, Exception ex)

    public void afterThrowing(Method method, Object[] args, Object target, ServletException ex)

This is a framework class that need not be used directly by Spring users.

Author:
  Rod Johnson, Juergen Hoeller
See Also:
  - `MethodBeforeAdviceInterceptor`
  - `AfterReturningAdviceInterceptor`

## Constructor Summary

Constructors
Constructor
Description
`ThrowsAdviceInterceptor(Object throwsAdvice)`
Create a new ThrowsAdviceInterceptor for the given ThrowsAdvice.

## Method Summary

Modifier and Type
Method
Description
`int`
`getHandlerMethodCount()`
Return the number of handler methods in this advice.
`Object`
`invoke(MethodInvocation mi)`
Implement this method to perform extra treatments before and after the invocation.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### ThrowsAdviceInterceptor

public ThrowsAdviceInterceptor(Object throwsAdvice)
Create a new ThrowsAdviceInterceptor for the given ThrowsAdvice.

Parameters:
  `throwsAdvice` - the advice object that defines the exception handler methods (usually a `ThrowsAdvice` implementation)

## Method Details

### getHandlerMethodCount

public int getHandlerMethodCount()
Return the number of handler methods in this advice.

### invoke

@Nullable public Object invoke(MethodInvocation mi) throws Throwable
Description copied from interface: `MethodInterceptor`
Implement this method to perform extra treatments before and after the invocation. Polite implementations would certainly like to invoke `Joinpoint.proceed()`.

Specified by:
  `invoke` in interface `MethodInterceptor`
Parameters:
  `mi` - the method invocation joinpoint
Returns:
  the result of the call to `Joinpoint.proceed()`; might be intercepted by the interceptor
Throws:
  `Throwable` - if the interceptors or the target object throws an exception