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

  • 相关阅读:
    SQLServer中的死锁的介绍
    T-SQL基础--TOP
    jQuery 与js判断是否单选复选选中
    动态替换iframe的src及动态改变iframe的高度
    ztree-持续更新中
    java发送http连接
    nginx配置文件详解
    eclipse Mars4.5.2安装fatjar
    java Scanner类注意事项
    纯java+maven+sqlserver使用mybatis
  • 原文地址:https://www.cnblogs.com/nocanstillbb/p/11298657.html
Copyright © 2020-2023  润新知