我有以下代码
public Object handlePermission(ProceedingJoinPoint joinPoint, RequirePermission permission) throws AccessException, Throwable {
System.out.println("Permission = " + permission.value());
if (user.hasPermission(permission.value())) {
System.out.println("Permission granted ");
return joinPoint.proceed();
} else {
System.out.println("No Permission");
throw new AccessException("Current user does not have required permission");
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用没有权限的用户时,我得到的java.lang.reflect.UndeclaredThrowableException不是AccessException.
axt*_*avt 79
AccessException是一个经过检查的异常,但它是从未在其throws子句中声明它的方法抛出的(实际上 - 从拦截该方法的方面).这是Java中的一个异常情况,因此您的异常将被包装UndeclaredThrowableException,这是未选中的.
要按原样获取异常,您可以throws在方法截获的方法的子句中声明它,或者使用另一个未经检查的异常(即子类RuntimeException)而不是AccessException.
| 归档时间: |
|
| 查看次数: |
51932 次 |
| 最近记录: |