[.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;

我们运行起来看看效果

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

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

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

运行起来的异常效果 

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

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

猜你喜欢

转载自www.cnblogs.com/nocanstillbb/p/11298657.html
今日推荐