java—获取未声明的ThrowableException而不是我自己的异常

tf7tbtn2  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(318)

我有以下代码

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 .

edqdpe6u

edqdpe6u1#

AccessException 是已检查的异常,但它是从未在其 throws 子句(实际上-从截取该方法的Angular )。这在java中是一种异常情况,所以您的异常用 UndeclaredThrowableException ,未选中。
要按原样获取异常,可以在 throws 子句,或者使用另一个未检查的异常(即 RuntimeException )而不是 AccessException .

相关问题