gpt4 book ai didi

GWT.setUncaughtExceptionHandler()

转载 作者:行者123 更新时间:2023-12-02 11:30:37 28 4
gpt4 key购买 nike

有人成功地使用上述语句在异常作为警报发送到浏览器之前捕获该异常吗?

我在应用程序入口点的第一行注册了一个自定义异常处理程序。但它并没有按预期捕获异常。

public void onModuleLoad(){
GWT.setUncaughtExceptionHandler(new MyExceptionHandler());
...
....
}

编辑

这是我的两个类(class):

我希望我的 system.out 将打印异常的详细信息并且异常将被吞掉并且不应发送到浏览器。

还是我错了?

package mypackage;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;

public class MyEntryPoint implements EntryPoint {

public void onModuleLoad() {
GWT.setUncaughtExceptionHandler(new ClientExceptionHandler());
startApplication();
}

private void startApplication() {
Integer.parseInt("I_AM_NOT_NUMBER");
}
}
<小时/>
package mypackage;

import com.google.gwt.core.client.GWT;

public class ClientExceptionHandler implements GWT.UncaughtExceptionHandler {

@Override
public void onUncaughtException(Throwable cause) {
System.out.println(cause.getMessage());
}
}

最佳答案

我相信这里发生的事情是当前的 JS 事件周期正在使用 DefaultUncaughtExceptionHandler,因为这是在周期开始时设置的处理程序。您需要将进一步的初始化推迟到下一个事件周期,如下所示:

public void onModuleLoad() {
GWT.setUncaughtExceptionHandler(new ClientExceptionHandler());
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
startApplication();
Window.alert("You won't see this");
}
});
}

private void startApplication() {
Integer.parseInt("I_AM_NOT_A_NUMBER");
// or any exception that results from server call
}

更新:here's the issue这描述了为什么会出现这种情况,以及为什么不计划修复它。

关于GWT.setUncaughtExceptionHandler(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3028521/

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