zoukankan      html  css  js  c++  java
  • DWR异常处理[转]

    在脚本engine.js中包含DWR的核心部分,通常情况下你的应用应该包含它.
    通常情况下还会包含util.js,它包含一些可选的实用方法.
    Demo.js是在DWR中动态定义它还包含一个对应的远程版本就是Demo.java.如果当你看到
    如下代码:
    Demo.Method1=function{callback,p0}
    Demo.Method2=function{callback}
    所以可以看出第一个参数是回调函数,p0才可能是你要传回的参数

    同样在engine.js中常用的方法有
    DWREngine.setErrorHandler(function)对错误的处理
    DWREngine.setWarningHandler(function)对警告的处理
    DWREngine.setTimeout() 设置超时的时间

    因为Ajax含义中的"A"就是指的 asynchronous(异步),那么每个Demo.Method执行都是在异步
    情况下完成的.如果要指定全局的超时设置那么就可以通过DWREngine.setTimeout()来完成

    同样的道理,DWREngine.setErrorHandler(function),DWREngine.setWarningHandler(function)
    用来设置全局的错误和警告处理

    当然如果想要真对某一个function来进行超时\警告\错误处理的话也是可以的
    如下:
       Demo.method(params, {
        callback:function(data) { alert("it worked"); },
        errorHandler:function(message) { alert("it broke"); },
        timeout:1000
       });

    DWR可以捕获自定义的错误异常如:在ErrDemo.java中实现
    public class ErrDemo {
    public String getData() {
        throw new NullPointerException("message");
    }
    }

    在客户段调用
    function eh(msg) { //错误函数
    alert(msg);
    }

    DWREngine.setErrorHandler(eh);
    ErrDemo.getData(function(data) { alert("123"); });
    程序的结果是eh跳出对话框,这个时候的msg相当调用
    Exception.getMessage()方法的值

    如果要实现自定义Exception的捕获也是可以的
    public class ErrDemo {
    public String getData() {
        Date when = new Date();//FunkyException extend Exception
        throw new FunkyException("message", when);
        // FunkyException 实现getWhen() method
    }
    }

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

    DWREngine.setErrorHandler(eh);

    ErrDemo.getData(function(data) { alert("123"); });
    结果是跳出的对话框中包含"message, date=Mon Jan 01 2008 10:00:00 GMT+0100"

    转自blog.163.com/new_liu.popo/blog/static/438709212008775465661/

  • 相关阅读:
    Vue 路由组件传参的 8 种方式
    JS中通过url动态获取图片大小的方法小结(两种方法)
    基于 Vue.js 实现的精致移动端组件库
    .net core 通过代码创建数据库表
    .net core 框架调用顺序
    POCO的理解
    winform datagridview 同步滚动
    UseIIS
    winform 多个datagridview 之间同步滚动
    winform BackgroundWorker 的用法
  • 原文地址:https://www.cnblogs.com/jamin/p/1585901.html
Copyright © 2011-2022 走看看