Welcome 微信登录

首页 / 软件开发 / JAVA / DWR调用远程方法的错误和异常处理

DWR调用远程方法的错误和异常处理2011-10-28记得以前通常我们在调用 DWR 的远程方法是这样写

Remote.method(params,function(data){       //服务端执行后客户端的逻辑,如       alert("服务端执行后返回的数据:"+data);   });  Remote.method(params,function(data){    //服务端执行后客户端的逻辑,如    alert("服务端执行后返回的数据:"+data);});
第一个至倒数第二个参数为客户端传向服务端的数据,最后一个参数直接就是一个回调函数。因为服务端根据 Java 对象生成的 js 代码就是:

Remote.method = function(p0, callback) {    dwr.engine._execute(Remote._path, "Remote", "method", p0, callback);}
所以很直观的把第二个参数理解为就是一个回调函数。当然要注意了,上面说的远程方法都是一个参数,如果为多个参数的话,callback 总是最后一个参数,如:

Remote.method= function(p0, p1, callback) {  dwr.engine._execute(Remote._path, "Remote", "method", p0, p1, callback);}
你的 DWR 程序要是一切顺利,那都好说,算你幸运;而要是碰到了远程方法在处理你的请求时抛出了异常,你将会看到 DWR 只会给你一个 alert("Error") 简单显示错了,而这是不够的。所以你需要去琢磨如何主动捕获种这一错误,更友好的展示给用户。所以若碰到远程调用的异常,你同样是幸运的,因为又可以思考来学到一着。

那个 alert("Error") 其实是 DWR 的全局错误处理,可通过 dwr.engine.setErrorHandler(errorHandler) 来改变它的默认行为的,如

function errh(errorString, exception) {    alert("提示你自定义的全局出错信息。");}dwr.engine.setErrorHandler(errh);