gpt4 book ai didi

java - 发生异常时停止 ThreadPoolTask​​Executor

转载 作者:行者123 更新时间:2023-11-30 07:46:28 25 4
gpt4 key购买 nike

当抛出未捕获的异常时是否可以停止org.springframework.scheduling.concurrent.ThreadPoolTask​​Executor,以及如何做到这一点?

例如,当抛出 MyCustomException 时,我想停止线程并在主线程中捕获异常:

taskExecutor.execute(new Runnable() {
@Override
public void run() {
try {
int i = 1/0;
} catch (Exception e) {
throw new MyCustomException(e);
}
}
});

最佳答案

由于您使用的是匿名内部类,因此这应该足够了:

taskExecutor.execute(new Runnable() {
@Override
public void run() {
try {
int i = 1/0;
} catch (Exception e) {
onExceptionInTask( new MyCustomException(e) ); // <== Inform main.
}
}
});

这是对“主”类中的方法的调用:

protected void onExceptionInTask( MyCustomException e ){
// do your thing like stop all tasks ...
}

关于java - 发生异常时停止 ThreadPoolTask​​Executor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33867632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com