[.net core]11.异常页

.net core中的异常页很重要

因为可以查看异常的堆栈信息, 请求的参数(如果有),cookie, http头 帮助我们快速的定位问题

.net core web app  默认开启了异常页,但是仅在开发环境才开启.

代码中的位置在 startup.cs 里的configure 方法中

            if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}

我们可以手动抛出一个异常看看,修改confgure方法:

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
} //使用fileServer代替 staticFiles 和defaultFiles
FileServerOptions fso = new FileServerOptions();
fso.DefaultFilesOptions.DefaultFileNames.Clear();
fso.DefaultFilesOptions.DefaultFileNames.Add("foo.html");
app.UseFileServer(); app.Run(async (context) =>
{
throw new Exception("手动 bug");
context.Response.Headers["Content-Type"] = "application/json";
await context.Response.WriteAsync("hello word");
});
}

这时我们 只要访问一个不存在的文件路径,跳过fileServier  使app.run里的代码被执行, 就会抛出 我刚才加的手动bug;

我们运行起来看看效果

[.net core]11.异常页

可以看到 出现这个很重要的异常页了

而如果我们把 异常中间件注释掉

            //if (env.IsDevelopment())
//{
// app.UseDeveloperExceptionPage();
//}

运行起来的异常效果

[.net core]11.异常页

然后我们也可以 像defaultFile中间件那样, 设置它的opthin

设置一些 打印的堆栈长度 之类的可选项,  这里就不再演示了,有兴趣可以自行google

上一篇:ITTC数据挖掘平台介绍(七)强化的数据库, 虚拟化,脚本编辑器


下一篇:《连载 | 物联网框架ServerSuperIO教程》- 3.设备驱动介绍