AccessException
is a checked exception, but it was thrown from the method that doesn’t declare it in its throws
clause (actually – from the aspect intercepting that method). It’s an abnormal condition in Java, so your exception is wrapped with UndeclaredThrowableException
, which is unchecked.
To get your exception as is, you can either declare it in the throws
clause of the method being intercepted by your aspect, or use another unchecked exception (i.e. a subclass of RuntimeException
) instead of AccessException
.