我在一个类中有一个重写的run()方法,该方法实现了java.lang.Runnable
,并且正在将该类的实例传递给java.util.concurrent.ThreadPoolExecutor
。run方法可能会引发运行时异常,我想使用AspectJ来围绕该方法创建@AfterThrowing建议,并在引发异常时添加一些行为。
我对代理几乎一无所知,并且由于事实上ThreadPoolExecutor负责调用run()方法,因此我无法通过使用]直接提供建议。
@AfterThrowing(pointcut = "execution(* com.mypackage.MyClass.run())")
如果该方法引发异常,但是在方法执行完成之后,还有其他方法可以实现某些行为吗?
[我当时正在考虑在ThreadPoolExecutor中建议某种方法,该方法负责调用run()方法,但不确定其中的生命周期如何。
任何想法?
我在一个类中有一个重写的run()方法,该方法实现java.lang.Runnable,并且我将该类的实例传递给java.util.concurrent.ThreadPoolExecutor。 run方法可能会抛出运行时...
您可以使用Thread.setUncaughtExceptionHandler()
。您只需要为池使用自己的ThreadFactory
,即可为这些线程设置处理程序。