已解决 java中 SimpleListenerHost.handleException函数并没有被执行
-
萌新提问,大概是示例中
public class MyEventHandlers extends SimpleListenerHost { @Override public void handleException(@NotNull CoroutineContext context, @NotNull Throwable exception){ // 处理事件处理时抛出的异常 } ... }
但是在项目中并不会被实现
@Override public void handleException(@NotNull CoroutineContext context, @NotNull Throwable exception){ //不会被执行 System.exit(0); //程序继续运行,log文件也正常输出test错误 } @Async @EventHandler public void msg(MessageEvent event) throws Throwable{ throw new RuntimeException( "test" ); }
请问我应该怎么修改
-
@EventHandler监听是工作正常的,此类继承于SimpleListenerHost,但是监听类交由ioc容器管理,是否与此有关
-
Please open a new issue on github
-
-
@karlatemp 感谢,辛苦了
-
目前可以使用
EventChannel#parentScope(listener).registerListenerHost(lister)
来解决问题
-
灰常感谢,可不可以另外请教一个问题,就是handleException的两个参数,第一个参数CoroutineContext可不可以获得抛出错误线程/方法持有的Event,用于取得发送者并回复错误信息
目前我是自定义异常,然后在这里面放入了上下文的数据(event对象)