首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

DDN 推荐给 AjaxPro.net 初/中级用户的一种简单实用的 AjaxPro 异常/调试 处理方式

2012-01-24 
DDN 推荐给 AjaxPro.net 初/中级用户的一种简单实用的 AjaxPro 错误/调试 处理方式A.需求说明发现有不少网

DDN 推荐给 AjaxPro.net 初/中级用户的一种简单实用的 AjaxPro 错误/调试 处理方式
A.   需求说明

发现有不少网友在用   AjaxPro,看大家提供的代码示例,基本上都没有进行错误处理,
甚至很多朋友都不知道,对于   AjaxPro   返回的响应结果对象有一个   error   属性表示是否发生了错误。
AjaxPro   服务端采取基于异常的处理方式,假如调用发生异常,
返回的   error   属性包含了该异常(   Exception   对象)的相关信息,包括错误信息,堆栈信息,引发异常的方法和对象。

这里提供自己实际使用   AjaxPro   中对于错误处理实用函数,通过一个窗口级的自定义变量,可以简单的实现
Debug   和   Release   版本切换。Debug   版本显示服务器端详细异常错误,Release   版本显示自定义信息。


B.   如何实现

只有一个函数:   function   showAjaxProError(error,   customMessage)

//   defines   a   variable   indicating   the   application   is   under   debug   version
//   comments   the   line   out   when   releasing   the   application
//   if(!window.AjaxProDEBUG)   {   window.AjaxProDEBUG   =   true;   }
function   showAjaxProError(error,   customMessage)
{
        if(!window.AjaxProDEBUG)   {
                var   msg   =   !customMessage   ?   error.Message   :   customMessage;
                alert( "系统错误\n\n "   +   msg);                
        }   else   {
                var   win   =   window.open( "AjaxProError ",   " ");
                var   doc   =   win.document;        
                doc.write( " <html> <head> <title> AjaxProError: ")
                doc.write(error.Type);
                doc.write( " </title> </head> <body> <div> <h3> ");
                doc.write( "AjaxPro   调用发生未处理的异常 ");
                doc.write( " </h3> ");
                doc.write( " <pre> ");
                doc.write( "Type "   +   ":\n       "   +   error.Type   +   "\n ");   //   异常类型
                doc.write( "Message "   +   ":\n       "   +   error.Message   +   "\n ");   //   异常信息    
                doc.write( "Stack "   +   ":\n "   +   error.Stack   +   "\n ");   //   堆栈跟踪
                doc.write( "TargetSite "   +   ":\n       "   +   error.TargetSite   +   "\n ");   //   引发异常的方法
                doc.write( "Source "   +   ":\n       "   +   error.Source   +   "\n ");   //   导致异常的对象  
                doc.write( " </pre> ");        


                doc.write((new   Date()).toLocaleString());
                doc.write( " <br/> <br/> ");
                doc.write( " <input   type= 'button '   value= 'close '   onclick= 'window.close() '   /> ");
                doc.write( " </div> ");
                doc.close();
        }
        return   false;  
}


C.   如何使用

function   displayServerDateTime()   {
                var   res   =   AjaxProSample.GetServerDateTime2(document.getElementById( "chkGenError ").checked);
                if(res.error)   return   showAjaxProError(res.error);
                alert( "DateTime   from   Web   Server   is   "   +   res.value.toLocaleString());
        }
       
        function   showServerDateTime()
        {      
                var   callback   =   function(res)   {
                        if(res.error)   return   showAjaxProError(res.error);
                        var   spnServerTime   =   document.getElementById( "spnServerTime ");                
                        spnServerTime.innerHTML   =   res.value.toLocaleString();        
                }                
                AjaxProSample.GetServerDateTime(callback);                
        }

D.   更多信息

完整示例及下载链接:

一种简单实用的   AjaxPro   错误处理方式  
http://www.cnblogs.com/Jinglecat/archive/2007/07/14/817812.html


E.   谢谢大家

不管如何,请多多拍砖;
如果刚好适合你的需求,请收藏之;


Good   Luck!

[解决办法]
支持分享帖~
[解决办法]
jfjf
[解决办法]
xiexie
[解决办法]
支持分享帖~
[解决办法]
mark
[解决办法]
JF兼收藏
[解决办法]
感谢无私分享!


[解决办法]
教学贴 支持
------解决方案--------------------


顶楼主 。顺便JF
[解决办法]
不错,AJAXPRO的调试确实是个问题
[解决办法]
好东西,谢谢
[解决办法]
AJAXPRO的调试确实是个问题

热点排行