传递对象(List <string>)作为Exception </string>的一部分

时间:2013-06-25 16:48:54

标签: c# exception exception-handling

我正在构建一个字符串列表,然后想要抛出异常并让UI处理列表并为用户创建错误消息。

有办法吗?

2 个答案:

答案 0 :(得分:32)

异常包含Data属性(这是一个字典)。它可用于传递其他信息:

try
{
    // throw new Exception
}
catch(Exception e)
{
    // whatever
    e.Data["SomeData"] = new List<string>();
}

答案 1 :(得分:30)

您可以使用Exception.Data属性传递任意数据,但更好(更干净)的解决方案是创建从Exception派生的自定义异常类,并添加您需要的任何属性。

示例代码:

public class MyException: Exception
{
    public List<String> MyStrings { get; private set; }

    public MyException(List<String> myStrings)
    {
        this.MyStrings = myStrings;
    }
}