zoukankan      html  css  js  c++  java
  • 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. 异常转换器

    \
    我们在服务器端写业务逻辑的时候,通常会利用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("\r\n", "<br>\r\n");

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

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

    return s;

    }

    7. 参考

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

    我要啦免费统计
  • 相关阅读:
    Powershell数据处理
    Powershell About Active Directory Group Membership of a domain user
    Powershell About Active Directory Server
    Oracle Schema Objects——Tables——TableStorage
    Oracle Schema Objects——Tables——TableType
    English Grammar
    Oracle Database Documentation
    Oracle Schema Objects——Tables——Oracle Data Types
    Oracle Schema Objects——Tables——Overview of Tables
    What is Grammar?
  • 原文地址:https://www.cnblogs.com/attilax/p/15199088.html
Copyright © 2011-2022 走看看