栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

GWT服务例外记录的最佳做法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

GWT服务例外记录的最佳做法

在服务器端,我们有RemoteServiceServlet的子类,可用于所有服务实现。您提到这似乎很耗时,但是代码如下所示。您只需完成一次就可以了。

@Overrideprotected void doUnexpectedFailure(Throwable t) {    t.printStackTrace(System.err);    super.doUnexpectedFailure(t);}

注意:我们实际上并没有将其发送到System.err,您也可能不应该将其发送给System.err,但是您知道了。

在客户端,我们使用AsyncCallback的子类AsyncSuccessCallback。对于大多数RPC调用,它统一处理onFailure情况。我们的大多数回调代码都可以在知道onFailure被处理的情况下处理onSuccess情况。它还提供了一个地方,以后可以更改此实现。

public abstract class AsyncSuccessCallback<T> implements AsyncCallback<T> {    public void onFailure(Throwable t) {        handleException(t);    }    protected void handleException(Throwable t) {         Window.alert(t.getMessage());    }}

注意:实际上,我们实际上并没有使用Window.alert,但您仍然可以理解。在这种情况下,我们要做的是显示一个GWT对话框,该对话框显示一个窗体,该窗体对接收错误报告的其他服务器执行POST。该表格允许用户键入错误发生时他们在做什么的描述。

在客户端,如果要获取堆栈跟踪,则需要编写一些额外的代码:

// for lineEnding, use "<br>" for HTML, "n" for textpublic static final String getStackTrace(Throwable t, String lineEnding) {    Object[] stackTrace = t.getStackTrace();    if (stackTrace != null) {        StringBuilder output = new StringBuilder();        for (Object line : stackTrace) { output.append(line); output.append(lineEnding);        }        return output.toString();    } else {        return "[stack unavailable]";    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508641.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号