实现Runnable的类中的Advice方法

问题描述 投票:0回答:1

我在一个类中有一个重写的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方法可能会抛出运行时...

java spring threadpool aspectj runnable
1个回答
0
投票

您可以使用Thread.setUncaughtExceptionHandler()。您只需要为池使用自己的ThreadFactory,即可为这些线程设置处理程序。

© www.soinside.com 2019 - 2024. All rights reserved.