我想在 C# 中创建一个自定义异常,但理论上我确实需要先进行一些解析,然后才能创建一个人类可读的异常消息。
问题是原始 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; }
}
}
问题是 Visual Studio 调试器仍然显示我已传递给构造函数的消息,在本例中为Plep。
throw new CustomException( new { message="Show this message" } )
结果是:
如果我将基本构造函数留空,它将显示一条非常通用的消息:
App.exe 中出现“App.CustomException”类型的未处理异常
问题
看起来异常对话框读取了一些我也无权访问的字段/属性。是否有任何其他方法可以在 Exception 的基本构造函数之外设置人类可读的错误消息。
请注意,我使用的是 Visual Studio 2012。