我有一个带有以下签名的方法
我希望在通过我的点切割后记录异常,现在当我执行代码时它会在控制台上抛出异常打印然后来到我的点切割定义方法,可能是因为它是@AfterThoring注释但是有没有@BeforeThrowing注释可用吗?请建议我能做什么
public void jingleBell(){
System.out.println("Jingle Bell Job...");
throw new RuntimeException("test error");
}
并遵循切入点的建议
@AfterThrowing(pointcut = "execution(* com.dc.lnwsk.adapter.Search.jingleBell())", throwing = "ex")
public void handleException(Throwable ex){
//Log exception
}
答案 0 :(得分:4)
异常与methods
不同,在调用点切割方法之前,可以更改( weaved )再见代码以调用新方法。
异常是运行时现象,JVM事先并不知道会抛出一些异常,因此没有@BeforeThrowing 。
如果您事先知道自己的异常情况,那么最好在切入点方法上使用@Before
并处理异常情况。