• Atitit.dwr3 不能显示错误具体信息的解决方式,控件显示错误具体信息的解决方式 java .net php


    Atitit.dwr3 不能显示错误具体信息的解决方式,控件显示错误具体信息的解决方式 java .net php

    1. Keyword/subtitle 1

    2. 使用dwr3的异常convert处理不能解除,,,依照盗垒能解除了.... 1

    3. 使用js 回回调功能处理...还是不能,子能显示个..javaClassName:"java.lang.Throwable",message:"Error"} 2

    4. 异常转换器 2

    5. 当然假设想要仅仅针对某一个function来进行超时/警告/错误处理的话也是能够的 4

    6. 自己定义异常处理系统:: 4

    6.1. 异常捕获 4

    6.2. 异常显示 4

    6.3. Alert不能显示满的格式异常信息的解决之道::自己定义页面显示 5

    6.4. htmlEncode的问题 6

    7. 參考 6

    1. Keyword/subtitle

    控件显示错误具体信息的解决方式

    控件调试解决方式

    团队建设---技术建设---调试方法

    2. 使用dwr3的异常convert处理不能解除,,,依照盗垒能解除了....

     <convert match="java.lang.Exception" converter="exception">  

         <param name="include" value="message"/> 

      </convert> 

    <!--以下一定要配置,不然会报例如以下错误:org.directwebremoting.util.CommonsLoggingOutput error 严重: No converter found for 'java.lang.StackTraceElement' -->  

     <convert match="java.lang.StackTraceElement" converter="bean"></convert>  

     

    自己定义的异常能显示了,走十默认的异常不能....

    作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

    3. 使用js 回回调功能处理...还是不能,子能显示个..javaClassName:"java.lang.Throwable",message:"Error"}

     //   DWREngine.setErrorHandler(ehO9);  jei haosyo dwr2d 

    function errh(errorString, exception) {

      //  alert(errorString);

      //  alert( JSON.stringify(exception));

    eval(dwrxO9).getErr( function(data){

     alert(data);

     window.open("<%=path%>/com.attilax/util/dwrerr.jsp");

      

    });

    }

    dwr.engine.setErrorHandler(errh);

     

    4. 异常转换器


    我们在server端写业务逻辑的时候,一般会利用try{}catch{}捕获异常,可是如今对于前台调用后台的业务逻辑,我们假设在后台发生了一些异常,在前台怎样让他显示出来,这里dwr为我们提供了一种转换器(Exception转换器),可是这样的转换器假设我们不显示的表现出来,它会默认的给我们提供一个error的异常出来,后台报的异常会在前台以error的方式给我们显示,可是不会吧具体的信息暴露出来,所以我们须要自己配置error的转换器,然后把须要的异常信息给显示出来。举例: 

     

    engine.js中经常使用的方法有
    DWREngine.setErrorHandler(function)对错误的处理
    DWREngine.setWarningHandler(function)对警告的处理
    DWREngine.setTimeout() 设置超时的时间 
    DWREngine.setAsync(false);设置DWR为同步调用

    DWREngine.setAsync(true);设置DWR为异步调用

     

    执行调用打印Error。就是dwr框架给我们指定的,假设我们后台訪问的时候发生异常,前台为我们的提示信息就为Error,相当于这些普遍的异常都会以Error的形式给我们显示。

    假设我们如今不想要Error,我们想要知道前台给我们报的错误是针对后台哪一个异常,我们就须要这个异常转换器来给我们指定这样的异常的转换,然后把这样的异常信息捕获到前台,前台给我们打印出来,这就要用到dwr给我们提供的内置的转换器,在dwr.xml里面配置:

    <convert match="com.ryanlu.exception.FunkyException" converter="exception"> 
        <param name="include" value="message"/> 
     </convert>

    仅仅要配置了这样的异常处理转换器,后台发生异常,前台就能够给我们打印出来.执行结果:"异常的具体信息, date=Mon Jan 01 2008 10:00:00 GMT+0100"。这说明通过配置异常处理转换器,在前台能够捕获后台发生的异常,并且是具体的异常信息。

    由于Ajax含义中的"A"就是指的 asynchronous(异步),那么每一个Demo.Method运行都是在异步
    情况下完毕的.假设要指定全局的超时设置那么就能够通过DWREngine.setTimeout()来完毕

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

    5. 当然假设想要仅仅针对某一个function来进行超时/警告/错误处理的话也是能够的


    例如以下:
       Demo.method(params, {
        callback:function(data) { alert("it worked"); },
        errorHandler:function(message) { alert("it broke"); },
        timeout:1000
       });

     

    注意:callbackerrorHandlerengine.js里面的变量。用来处理异常。这样写的优点是,假设正常运行会调用callback函数,假设发生异常会调用exceptionHander函数来处理。注意callbackerrorHandler必须依照上面的方式来写,这是engine.js里面规定的。

     

     

    6. 自己定义异常处理系统::

    Thinki:::不个异常抓取,放得个session黑头.在使用dwr调用...

    6.1. 异常捕获

    ,自己定义的excator不能使用,,好像dwr的过滤器首先调用了,不个异常吃兰,闪的excator马异常兰...子好到个调用方法南儿加磊个捕获...

    6.2. 异常显示

    Store ex

    @RemoteMethod public void save_map(Map mp) {

    try {

     this.basesvs.save_map(mp);

    catch (Exception e) {

     DwrX.getSession().setAttribute("errO9", core.getTrace(e));

     throw new RuntimeException("--oa1c:"+e.getMessage(),e);

    }

    }

     

     

     

    --------show ex

      }

     //   DWREngine.setErrorHandler(ehO9);  jei haosyo dwr2d 

    function errh(errorString, exception) {

      //  alert(errorString);

    // alert( JSON.stringify(exception));

    eval(dwrxO9).getErr(function(data){

     alert(data);

     window.open("<%=path%>/com.attilax/util/dwrerr.jsp");

     

      

    });

    }

     

    dwr.engine.setErrorHandler(errh);

     

     

    6.3. Alert不能显示满的格式异常信息的解决之道::自己定义页面显示

    window.open("<%=path%>/com.attilax/util/dwrerr.jsp");

    <%= core.txt2html( request.getSession().getAttribute("errO9"))%>

     

     

     

     

     

    6.4. htmlEncode的问题

    public static String txt2html(Object s2) {

    // attilax 老哇的爪子  2_r_1   o03 

    String  s=StringEscapeUtils.escapeHtml4(s2.toString());

     s = s.toString().replaceAll(" ", "<br> ");

     s = s.toString().replaceAll(" ", " ");

     s = s.toString().replaceAll(" ", "    ");

    return s;

    }

    7. 參考

    DWR异常处理 - RyanLuX的专栏 博客频道 - CSDN.NET.htm

    我要啦免费统计
  • 相关阅读:
    查看windows以前连过的wifi密码
    winscp可能的替代品?
    查看windows的进程启动参数
    Ubuntu Server 安全补丁、版本升级
    AtCoder Beginner Contest 217 题解
    F. Alice and Recoloring 1&2
    E. Bored Bakry
    C. Bakry and Partitioning
    2021牛客多校 第四场
    AES解密报Given final block not properly padded
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4533764.html
Copyright © 2020-2023  润新知