关于C#内部异常加出错数据再抛出的方法

关于C#内部异常加出错数据再抛出的方法

   利用Exception类的“public Exception(stringmessage, Exception innerException)”构造函数,加上出错数据再抛出的方法,既可以保存原来的内部出错信息,又可以显示出出错时当时的出错数据,这个方法非常好,具体代码如下:

 

                StringBuilder sbErrorData = new StringBuilder();

                try

                {

                    string sIntStr = "dfal";

                    sbErrorData.Append(sIntStr);

                    int i = int.Parse(sIntStr);

                }

                catch(Exception ex)

                {

                    throw new Exception("出错数据:"+ sbErrorData.ToString(), ex);

                }

 

再在外层调用捕捉异常后,用ex.ToString()输出的错误信息既有出错数据,又有内部异常的完整信息,更方便查找错误原因。错误信息如下:

System.Exception: 出错数据:dfal --->System.FormatException: 输入字符串的格式不正确。

   在 System.Number.StringToNumber(String str, NumberStylesoptions, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)

   在 System.Number.ParseInt32(String s, NumberStyles style,NumberFormatInfo info)

   在 System.Int32.Parse(String s)

   在 TestProj.Form1.button2_Click(Object sender, EventArgs e)位置 D:\Form1.cs:行号 70

   --- 内部异常堆栈跟踪的结尾 ---

   在 TestProj.Form1.button2_Click(Object sender, EventArgs e)位置 D:\Form1.cs:行号 74

你可能感兴趣的:(关于C#内部异常加出错数据再抛出的方法)