抛出错误列表时出错?
在项目中,我被扔的错误消息列表抛出错误列表时出错?
这样
List<string> errorMessageList = errors[0].Split(new char[] { ',' }).ToList();
throw new WorkflowException(errorMessageList);
和我WorkflowException类看起来像这样
/// <summary>
/// WorkFlowException class
/// </summary>
public class WorkFlowException : Exception
{
/// <summary>
/// Initializes a new instance of the WorkFlowException class
/// </summary>
/// <param name="message">Error Message</param>
public WorkFlowException(List<string> message)
{
base.Message = message;
}
}
,但得到的错误,同时指派消息这份名单消息 任何人都可以帮助我做到这一点?
Exception.Message
是string
,不是List<string>
,它的只读,所以你必须通过构造链接到string
传递给基类:
public class WorkFlowException : Exception
{
public WorkFlowException(List<string> messages)
: base(messages != null && messages.Count > 0 ? messages[0] : "")
{
//...
}
}
或者,您可以覆盖Message
property:
public class WorkFlowException : Exception
{
List<string> messages;
public WorkFlowException(List<string> messages)
{
this.messages = messages
}
public override string Message
{
get { return messages != null && messages.Count > 0 ? messages[0] : "" }
}
}
Exception.Message是一个字符串。您正尝试将List<string>
分配给string
属性。 类型不匹配..在分配之前尝试并将您的字符串列表格式化为单个字符串。
更新(感谢马克)public WorkflowException(List<string> listOfMessages) : base(String.Join(",", listOfMessages.ToArray());
base.Message is read-only – 2011-04-12 04:39:41
@Mark - correct! :) – Gishu 2011-04-12 04:57:14
Exception.Message是字符串。不List<string>
它是只读的 – 2011-04-12 04:39:06
@Mark Cidade:谢谢:)我忘了:) – Anuraj 2011-04-12 04:40:35
而不是只显示列表中的第一条消息,我会将每个元素连接成单个字符串,以便您不会丢失任何在抛出异常时的消息。 – 2011-04-12 04:46:11
OP最初在逗号分隔的字符串中有所有错误。你也可以有一个'Messages'属性。 – 2011-04-12 04:47:29