我想在 C # 中创建一个定制的 Exception,但理论上,在创建一个人类可读的 ExceptionMessage 之前,我确实需要先进行一些解析。
问题是原始 Message 只能通过调用 Messsage
的基本构造函数来设置,所以我无法提前进行任何解析。
我尝试像下面这样覆盖 Message 属性:
public class CustomException : Exception
{
string _Message;
public CustomException(dynamic json) : base("Plep")
{
// Some parsing to create a human readable message (simplified)
_Message = json.message;
}
public override string Message
{
get { return _Message; }
}
}
问题是 VisualStudio 调试器仍然显示我传递给构造函数的消息,在本例中为 拜托。
throw new CustomException( new { message="Show this message" } )
结果:
如果我让基本构造函数为空,它将显示一个非常通用的消息:
App.exe 中发生了“ App.CustomException”类型的未处理异常
提问
它看起来像异常对话框读取一些字段/属性,我没有任何访问太多。是否有其他方法在 Exception 的基构造函数之外设置人类可读的错误消息。
注意,我正在使用 VisualStudio2012。