Configure
在Startup.cs文件的方法中,通常具有如下所示的代码:
if(env.IsDevelopment()) { app.UseDeveloperExceptionPage(); }
该app.UseDeveloperExceptionPage();
行会在发生异常时在浏览器中显示详细信息,这对于调试非常有帮助。
我确定您已经看到了输出,它看起来像这样:
这是一个很好的开始,但是有时作为开发人员,我们会向异常添加其他信息以提供有关错误的详细信息。本System.Exception
类有一个Data
可用于存储这些信息的收集。因此,例如,我的自定义AppException
继承的自定义对象Exception
具有一个构造函数,除了标准异常消息外,该构造函数还接受私有消息,如下所示:
////// Application Exception. /// /// Message that can be displayed to a visitor. /// Message for developers to pinpoint the circumstances that caused exception. /// public AppException(string message, string privateMessage, Exception innerException = null) : base(message, innerException) { //Placing it in the exception Data collection makes the info available in the debugger this.Data["PrivateMessage"] = privateMessage; }
因此,您可以想象一下,如果开发人员例外页面显示上PrivateMessage
的Exception
(如果是AppException
)以及所有其他信息,那就太好了。我想尽办法找出如何自定义或扩充开发人员例外页面上显示的信息,但是却找不到任何好的信息。
如何自定义或扩充开发人员例外页面上显示的信息?