异常相关的代码
2014-10-24 13:50:19 访问(2389) 赞(0) 踩(0)
-
程序的异常处理,简单的代码就是:
try
{
string str = null;
string two = str.ToLower();
}
catch (Exception err)
{
lt_Result.Text = err.Message;
}
返回结果提示:
未将对象引用设置到对象的实例。
这样,如果在多层调用的函数或模块中,我们很难知道哪个方法或函数发生错误。
我们可以深度挖掘异常err变量反馈的信息,如下面例子:
try
{
string str = null;
string two = str.ToLower();
}
catch (Exception err)
{
StringBuilder errSB = new StringBuilder();
errSB.Append("err.Message:" + err.Message + "<br />");
errSB.Append("err.Source:" + err.Source + "<br />");
errSB.Append("err.TargetSite:" + err.TargetSite.ReflectedType.FullName + " " + err.TargetSite.Name + "<br />");
errSB.Append("err.StackTrace:" + err.StackTrace.Replace(""+'\r'+'\n',"<br />"));
lt_Result.Text = errSB.ToString();
}
返回结果提示:
err.Message:未将对象引用设置到对象的实例。
err.Source:App_Web_qm27qxrj
err.TargetSite:WebForms_WebPages_code_dotnet_common_basic_ExceptionDemo Button1_Click
err.StackTrace: 在 WebForms_WebPages_code_dotnet_common_basic_ExceptionDemo.Button1_Click(Object sender, EventArgs e) 位置 c:\Projectes\SlowX\SRC\Code\SlowXWebSite\WebSite\WebForms\WebPages\code\dotnet\common\basic\ExceptionDemo.aspx.cs:行号 35
因此,可以封装一个异常处理的方法函数:
/// <summary>
/// 打印和输出异常
/// </summary>
/// <param name="err"></param>
/// <returns></returns>
public static string GetExceptionInfo(Exception err)
{
StringBuilder theResult = new StringBuilder();
theResult.AppendLine("err.Message:" + err.Message);
theResult.AppendLine("err.Source:" + err.Source);
theResult.AppendLine("err.TargetSite:" + err.TargetSite.ReflectedType.FullName + " " + err.TargetSite.Name);
theResult.AppendLine("err.StackTrace:" + err.StackTrace);
return theResult.ToString();
}
标签:
捕获异常 


自定义异常内容 


跟踪异常 


上一条:
下一条:
相关评论
发表评论