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. 异常转换器


    我们在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

    我要啦免费统计
  • 相关阅读:
    linux常用命令
    mysql 开发基础系列20 事务控制和锁定语句(上)
    sql server 性能调优之 资源等待 CXPACKET
    mysql 开发基础系列19 触发器
    mysql 开发基础系列18 存储过程和函数(下)
    mysql 开发基础系列17 存储过程和函数(上)
    sql server 性能调优之 资源等待PAGEIOLATCH
    mysql 开发基础系列16 视图
    mysql 开发基础系列15 索引的设计和使用
    sql server 性能调优之 当前用户请求分析 (1)
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4533764.html
Copyright © 2011-2022 走看看