zoukankan      html  css  js  c++  java
  • ASP.NET Core – Handle Error on Razor Page

    前言

    网站不应该有 error, 但它却必然会发生的, 所以给用户一个友好的 error 页面是很重要的.

    主要参考

    Handle errors in ASP.NET Core

    Development 期的错误处理

    在 dev 的时候, ASP.NET Core 已经替我们做好了一个错误页面, 对开发人员很友好的. 

    我们不需要做任何设置.

    Production 期的错误处理

    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/InternalServerError");
    }

    UseExceptionHandler 会通过 path /InternalServerErrorr 找到对应的 razor page 渲染返回内容.

    在 Model 我们可以通过 request features 拿到相关的 exception information

    public void OnGet()
    {
        var exceptionHandlerPathFeature = HttpContext.Features.Get<IExceptionHandlerPathFeature>();
        RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
    }

    404 页面

    404 不算 Exception, 所以上面的方案是不会处理 404 的.

    app.UseStatusCodePagesWithReExecute("/Status/{0}");

    通过 UseStatusCodePagesWithReExecute 就可以解决 404 的问题了. 它的执行和 Exception handler 类似.

    依据 path 找到 page 然后渲染返回, 同样在 Model 可以拿到 status 的 information.

    public void OnGet(string statusCode)
    {
        var exceptionHandlerPathFeature = HttpContext.Features.Get<IStatusCodeReExecuteFeature>();
        RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
    }
  • 相关阅读:
    次小生成树(SST)
    传纸条(scrip)
    动态规划练习5
    动态规划练习4
    整数的lqp拆分
    [HNOI2002]跳蚤
    BZOJ1803: Spoj1487 Query on a tree III
    51nod-1526: 分配笔名
    51nod-1615: 跳跃的杰克
    BZOJ2588: Spoj 10628. Count on a tree
  • 原文地址:https://www.cnblogs.com/keatkeat/p/15440982.html
Copyright © 2011-2022 走看看