具有自定义Message属性的继承的Exception类
|
public class GroupWithSpecificOptionsNotFoundException : Exception
{
public GroupWithSpecificOptionsNotFoundException(string place, Dictionary<string, string> options)
: base(string.Format(\"Group with specific options not found, in ({0}), at ({1})\", place, DateTime.Now.ToString()))
{
foreach (string key in options.Keys)
{
this.Message += string.Format(\"Option Name : ({0}) with Value : ({1}) not found in this group options set\", key, options[key]);
}
}
}
这个想法很简单,我想将键/值对象包括在异常的ѭ1中。不能在base()
事物中执行此操作,也不能在构造函数中执行此操作(\“消息为只读\”)。
我找到了一个静态函数可以解决问题的解决方案:
public class GroupWithSpecificOptionsNotFoundException : Exception
{
public static string GenerateOptionValueString(Dictionary<string, string> options)
{
string msg = string.Empty;
foreach (string key in options.Keys)
{
msg += string.Format(\"Option Name : ({0}) with Value : ({1}) not found in this group options set\", key, options[key]);
}
return msg;
}
public GroupWithSpecificOptionsNotFoundException(string place, Dictionary<string, string> options)
: base (string.Format(\"Group with specific options not found ({2}), in ({0}), at ({1})\",
place, DateTime.Now.ToString(), GroupWithSpecificOptionsNotFoundException.GenerateOptionValueString(options)))
{
}
}
但是我对此不太满意!
对于这种情况和类似情况,还有其他解决方法吗?
没有找到相关结果
已邀请:
1 个回复
骇毖煽洁铂
我认为您只需要工厂即可处理带有自定义消息的异常的创建。