Vaadin 自定义错误消息

发布于 2024-12-05 23:06:49 字数 809 浏览 0 评论 0原文

Vaadin Web 框架针对任何未捕获的异常显示红色错误警报:

内部错误

请通知管理员

...

Vaadin 文档介绍了 如何设置自定义错误处理程序

当我提供自定义错误处理程序时,默认的红色错误警报仍然显示。当用户消除该错误警报时,就会出现自定义错误警报。我只想显示自定义错误警报。如何禁用默认的“内部错误”警报?

下面是我的 vaadin Application 类的重写的terminalError方法:

@Override   public void terminalError(Terminal.ErrorEvent event) {
    // Call the default implementation.
    super.terminalError(event);

    // Some custom behaviour.
    if (getMainWindow() != null) {
        getMainWindow().showNotification(
                "An unchecked exception occured!",
                event.getThrowable().toString(),
                Notification.TYPE_ERROR_MESSAGE);
    }   }

The Vaadin web framework displays a red error alert for any uncaught exceptions:

Internal error

Please notify the administrator

...

The Vaadin documentation describes how to set a custom error handler.

When I provide a custom error handler, the default red error alert still shows up. When the user dismisses that error alert, then the custom error alert appears. I would like to only show the custom error alert. How can one disable the default "Internal error" alert?

Below is the overridden terminalError method of my vaadin Application class:

@Override   public void terminalError(Terminal.ErrorEvent event) {
    // Call the default implementation.
    super.terminalError(event);

    // Some custom behaviour.
    if (getMainWindow() != null) {
        getMainWindow().showNotification(
                "An unchecked exception occured!",
                event.getThrowable().toString(),
                Notification.TYPE_ERROR_MESSAGE);
    }   }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

秋风の叶未落 2024-12-12 23:06:49

您必须在 Application 类中定义一个名为 getSystemMessages 的静态方法,它将返回一个 CustomizedSystemMessages 对象。如果您使用 false 参数调用 setInternalErrorNotificationEnabled 方法,“内部错误”将会消失。这样您也可以禁用 Vaadin 针对其他错误类型的内置通知消息。

您可以通过调用 setInternalErrorURL 来提供一个 url,以便 Vaadin 在发生内部错误时将您的页面重定向到该 url。您可以在该页面中显示错误消息。该页面也可以是 Vaadin 窗口。

You have to define a static method called getSystemMessages in your Application class, which will return a CustomizedSystemMessages object. If you call setInternalErrorNotificationEnabled method with false parameter "internal error" will disappear. This way you can disable Vaadin's built-in notification messages for other error types as well.

You can provide a url by calling setInternalErrorURL so that Vaadin will redirect your page to that url whenever internal error occurs. You can display your error message in that page. This page could be a Vaadin window as well.

携君以终年 2024-12-12 23:06:49

这两个操作是否都是因为调用 super.terminalError(event) 才发生的?

或者您是否必须清除 在这个方法中设置

Do both actions happens because you call super.terminalError(event)?

Or do you have to clear the component error that is set in this method?

秋意浓 2024-12-12 23:06:49

保罗是对的:你必须删除对 super 的调用。

为了工作,我在 Application 的子类中执行了以下操作:

setErrorHandler(this); // dont know why it's doesn't work without this instruction.

并重写了terminalError方法,而不调用super.terminalError()

问候,埃里克

Paul is right : you have to remove the call to the super.

To work, I did the following in my subclass of Application :

setErrorHandler(this); // dont know why it's doesn't work without this instruction.

and I override the terminalError method without the call to super.terminalError().

Regards, Éric

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文