在Startup.cs文件的Configure方法中,常见的代码如下所示:
if(env.IsDevelopment()) { app.UseDeveloperExceptionPage(); }
app.UseDeveloperExceptionPage(); line会导致在发生异常时在浏览器中显示详细信息,这对调试很有帮助.
我确定你已经看到了输出,它看起来像这样:
这是一个很好的开始,但有时作为开发人员,我们会向异常添加其他信息以提供有关错误的详细信息. System.Exception类具有可用于存储此类信息的Data集合.因此,例如,继承自Exception的自定义AppException具有一个构造函数,除了标准异常消息之外还接受私有消息,如下所示:
/// <summary> /// Application Exception. /// </summary> /// <param name="message">Message that can be displayed to a visitor.</param> /// <param name="privateMessage">Message for developers to pinpoint the circumstances that caused exception.</param> /// <param name="innerException"></param> 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; }
因此,当您可以进行映像时,如果开发人员异常页面显示来自Exception的PrivateMessage(如果它是AppException)以及所有其他信息,那就太好了.我看起来高低不知道如何定制或扩充开发人员异常页面上显示的信息,但却无法找到有关它的任何好信息.