Home
JavaEE
Java GUI
Framework
DHtml
Android
插画
教程下载

ATOM 2.0   RSS 2.0
Add to iGoogle Add to Live.com
  • DeZender对用Zend Encoder加密过的PHP文件反编译
  • 写一个用于微博同步的Google Desktop Gadget
  • 在同学的QZone中看到的BB用药大全
  • 今天终于收到金山快盘的邀请码
  • 利用最短ie判断在不同浏览器上播放背景音乐
  • 对插画方面的一点感受与回忆
  • 网上看到的两个死里逃生的图片,记录一下
  • 今天开通了糖果社区,附几个激活码
  • 终于可以实现我的多个微博实时同步了
  • 备案和现场拍照就是对站长们的瞎折腾
  • 今天开通了糖果社区,附几个激活码
  • 终于可以实现我的多个微博实时同步了
  • 备案和现场拍照就是对站长们的瞎折腾
  • 昨天借用飞姐的佳作做的一个浪漫爱情网页
  • 有几个腾讯微博的邀请码(实时更新)
  • BB的网站移到了GAE-JAVA上了
  • 一个基于GAE Python Web.py和JQuery的留言本程序
  • 类许愿墙的一个告白网站和一个电子书网站
  • Android中用Bitmap获取图片中某个区域的图象
  • 对暴力破解带密码的QQ相册的可行性分析
  • 对淘宝web旺旺版一些通讯接口的研究

dwr中的错误处理

posted by David Chen at July 11, 2007, 9:27 AM    

DWR中有一些全局的处理器(一个错误相关的, 叫做errorHandler, 另一个警告相关的, 叫做warningHandler)。DWR会默认指定一些全局处理器。你可以这样的改变全局级别的处理器:

DWREngine.setErrorHandler(handler);你也可以指定单次调用和批量调用的错误和警告处理。例如,在调用元数据中:

Remote.method(params, {
callback:function(data) { ... },
errorHandler:function(errorString, exception) { ... }
});或者,在批量元数据中:

DWREngine.beginBatch();
Remote.method(params, function(data) { ... });
// 其他的远程调用
DWREngine.endBatch({
errorHandler:function(errorString, exception) { ... }
});异常
DWR可以转换异常,这样他们会变成Javascript中的错误(他们可以被抛出,因为这可能在异步调用中发生)。
例如,如果我们远程调用下面的Java类:

public class Remote {
public String getData() {
throw new NullPointerException("message");
}
}那么在Javascript中我们加入下面这些:

function eh(msg) {
alert(msg);
}
{
DWREngine.setErrorHandler(eh);

Remote.getData(function(data) { alert(data); });结果会通过eh()错误处理器调用alert窗口的,显示消息 – 例如调用异常的getMessage()得到的消息。

找出更多的信息
我们可以把整个异常传地到Javascript中。如果在dwr.xml中加入转换异常本身的能力:

<convert converter="bean" match="my.special.FunkyException"/>在这里例子中FunkyException被指定,因为它不仅仅包括一个消息,它还包括一些关于异常的额外数据。例如,SQLException包含错误号,SAX异常包含错误的行和列等等。所以我们可以把上面的例如改为:

public class Remote {
public String getData() {
Date when = new Date();
throw new FunkyException("message", when);
// FunkyException有一个getWhen()方法
}
}然后在Javascript中是这样的:

function eh(msg, ex) {
alert(msg + ", date=" + ex.when);
}

DWREngine.setErrorHandler(eh);

Remote.getData(function(data) { alert(data); });结果会是一个eh()错误处理器调用的alert框,上面有这些信息:"message, date=Mon Jan 01 2008 10:00:00 GMT+0100"

被传递到错误处理器的ex对象会包含异常在服务端的所有属性,但是异常栈信息没有。
Labels:
Trackback:   http://cwq.iou1314.com/_a147
微博最近更新
[2010-09-06 16:08]    明天有市领导来,后天又有省领导来,今天一个下午就拉了5条大横幅,累死我了,上周星期6,7办公室都要上班,这种生活什么时候可以摆脱?
[2010-09-04 04:43]    又是要加班的双休日,昨晚和领导去县城做资料做到11:30,确定这两天都要加班,刚准备回家,跟着领导接 电话说有村民想自杀不成,已带到卫生院,又跟领导回乡镇处理劝说一下。搞完到了1:30。回来凉都冲就睡 觉了。
本站内的任何文章,只代表个人意见或学习所用,如有版权声明,请尊重作者的劳动成果,在转载时请保留原始链接并注明出处。
Power by David's PhpCms, © 2007 - 2010 CWQ.IOU1314.COM All Rights Reserved.