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

时间:2012-01-02 19:26:10

标签: c# exception

当我抛出或捕获任何类型的异常时,我想指定一个错误代码,以便能够执行以下操作:

Writeline(ex.Source + ex.Message + ex.Code);
你可以告诉我一个方法或建议吗?

谢谢大家。

2 个答案:

答案 0 :(得分:2)

您有两种选择:

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

2)您可以为任何Exception的Data字典添加名称/值对。

从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);
        }

答案 1 :(得分:1)

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