我在方法M上有一个注释,我正在进行一些检查,如果检查没有成功,我不想执行基础方法M.我希望调用者知道调用没有&# 39; t成功的原因。
为了实现这一点,如果检查失败,我会从注释中抛出异常。所以我在这里有几个问题:
我无法捕获特定的异常,因为IDE告诉我异常没有被抛出方法?
为了快速入侵,我正在捕获Exception
,然后使用instance of
运算符来获取特定的异常。
还有其他更好的方法来实现这个目标吗?
我是否有办法不抛出异常?
注释方面代码如下所示:
@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
}
}
答案 0 :(得分:4)
IDE只能验证已检查例外。使异常扩展RuntimeException
。
您可以随时catch
,因为IDE无法验证是否有任何代码抛出它,因为如果它们不需要声明方法。