如何扩展异常以返回指定的错误代码以及通常的消息

本文关键字:错误代码 消息 返回 何扩展 扩展 异常 | 更新日期: 2023-09-27 18:19:19

当我抛出或捕获任何类型的异常时,我希望指定一个错误代码,以便能够做以下事情:

Writeline(ex.Source + ex.Message + ex.Code);
你能给我指个路或提个建议吗?

谢谢大家

如何扩展异常以返回指定的错误代码以及通常的消息

你有两个选择:

1)如果你抛出自己的异常,你可以从异常类继承,并添加任何你想要的属性。

2)你可以添加名称/值对到任何异常的数据字典。

从MSDN文档中,添加信息到Data:

   try
   {
       // do something
   }
   catch (Exception e)
   {
        e.Data["ExtraInfo"] = "Information from NestedRoutine1.";
        e.Data.Add("MoreExtraInfo", "More information from NestedRoutine1.");
        throw e;
   }

和使用该信息:

        if (e.Data != null)
        {
            Console.WriteLine("  Extra details:");
            foreach (DictionaryEntry de in e.Data)
                Console.WriteLine("    The key is '{0}' and the value is: {1}", de.Key, de.Value);
        }

Exception类为需要存储在Exception实例中的任何自定义数据定义了一个键/值字典-参见Exception.Data属性。