我有以下签名的方法
我想在切入点捕获后记录异常,现在执行我的代码时,将其抛出异常打印到控制台,然后转到切入点定义的方法,这可能是因为它是@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
}
最佳答案
异常不同于methods
,在调用切点方法之前,可以更改(编织)再见代码以调用新方法。
异常是运行时现象,JVM事先不知道会抛出一些异常,因此没有@BeforeThrowing。
如果您事先知道异常情况,则最好在切点方法上使用@Before
并处理异常情况。