在Vaadin 8中:
UI.getCurrent().setErrorHandler(e -> handleError(e));
setErrorHandler
在Vaadin 11中不存在,我找不到相应的方法或文档。
答案 0 :(得分:2)
在Flow(Vaadin 10+)中,有一种机制可以捕获Router中未捕获的异常。因此,您可以创建错误视图,这些视图将在捕获定义的异常时显示。它们是通过实现带有异常类型的HasErrorParameter接口创建的。以下是Vaadin文档中的示例:
const output = input.split("").map(char => dict[char]).join("");
我建议从文档中阅读更多内容。
https://vaadin.com/docs/v11/flow/routing/tutorial-routing-exception-handling.html
答案 1 :(得分:2)
如果您使用的是Vaadin Spring Boot启动程序,则实现应如下所示:
@SpringComponent
public class MyVaadinServiceInitListener implements VaadinServiceInitListener {
@Override
public void serviceInit(ServiceInitEvent event) {
event.getSource().addSessionInitListener(e -> {
e.getSession().setErrorHandler(errorEvent-> {
Throwable t = errorEvent.getThrowable();
// handle error
});
});
}
}
答案 2 :(得分:0)
有一个VaadinSession :: setErrorHandler,用于与在路由/导航期间而不是例如单击时发生的错误无关。
答案 3 :(得分:0)
在 Vaadin 10+ 中有两个错误处理入口点:
前一种是在服务器因为异常无法产生视图时触发的。后者由源自按钮点击、其他类型组件事件和 UI.access() 的异常触发。
有关详细信息,请参阅 https://mvysny.github.io/vaadin-error-handling/。