我有以下代码
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");
}
}
当我使用一个没有权限的用户时,我得到 java.lang.reflect.UndeclaredThrowableException
而不是 AccessException
.
1条答案
按热度按时间edqdpe6u1#
AccessException
是已检查的异常,但它是从未在其throws
子句(实际上-从截取该方法的Angular )。这在java中是一种异常情况,所以您的异常用UndeclaredThrowableException
,未选中。要按原样获取异常,可以在
throws
子句,或者使用另一个未检查的异常(即RuntimeException
)而不是AccessException
.