抛出注释中的异常

时间:2017-11-19 13:58:57

标签: java

我在方法M上有一个注释,我正在进行一些检查,如果检查没有成功,我不想执行基础方法M.我希望调用者知道调用没有&# 39; t成功的原因。

为了实现这一点,如果检查失败,我会从注释中抛出异常。所以我在这里有几个问题:

  1. 我无法捕获特定的异常,因为IDE告诉我异常没有被抛出方法? 为了快速入侵,我正在捕获Exception,然后使用instance of运算符来获取特定的异常。

    还有其他更好的方法来实现这个目标吗?

  2. 我是否有办法不抛出异常?

  3. 注释方面代码如下所示:

    @Before(value = "@annotation(abc)", argNames = "pjp, abc")
    public Object around(ProceedingJoinPoint pjp, ABC abc) throws Throwable {
           if(notAllow()){
                throw new CustomException("Not allowed");
            } else {
              pjp.proceed()
           }
    
        }
    }
    

    处理程序代码如下所示:

    catch(Exception e){
       if(e instanceof CustomException){
           // do something
       }
    }
    

1 个答案:

答案 0 :(得分:4)

IDE只能验证已检查例外。使异常扩展RuntimeException

您可以随时catch,因为IDE无法验证是否有任何代码抛出它,因为如果它们不需要声明方法。