dwr错误处理
来源:互联网 发布:毛体 知乎 编辑:程序博客网 时间:2024/05/22 14:22
错误处理
在1.0版中错误处理规则有些bug,1.1修复了这些错误。
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对象会包含异常在服务端的所有属性,但是异常栈信息没有。
- dwr错误处理
- dwr 出现session error错误的处理
- DWR 调用远程方法的错误和异常处理
- DWR变量未定义错误
- DWR XML解析错误
- DWR异常处理
- dwr 批量处理
- DWR中的异常处理
- DWR中处理List
- DWR中处理集合
- dwr异常处理
- DWR异常处理
- dwr的异常处理
- dwr的异常处理
- web程序莫名弹出错误提示框(dwr),处理方法。产生原因有待思考
- 测试DWR框架出现错误
- DWR出现Session Error错误
- 关于DWR异常处理小结
- PCB走线规则
- VB基础教程(二)
- PCB焊盘和过孔问题分析
- 向左走,向右走(2) 为了未来
- Butterworth filter
- dwr错误处理
- jsp文件上传
- vs2005和vs2008有什么区别?
- struts+spring+hibernate集成实例
- Microsoft windows internals 学习笔记(1)
- 如何搭建SVN服务器
- 老是弄糊涂,火了
- 软件性能测试的基本概念
- 程序设计实践(2)----算法