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

本文介绍了一种在C#中处理异常的有效方法:通过保留原始异常信息并附加出错数据来增强异常信息,便于快速定位问题根源。示例代码展示了如何在捕获异常时收集相关数据,并在后续处理中一并输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

   利用Exception类的“public Exception(string message, 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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值