为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在发生异常时未从 Mvc 设置 StatusCode

为什么在发生异常时未从 Mvc 设置 StatusCode

C#
眼眸繁星 2021-06-15 17:39:12
在一个简单的应用程序中:public void Configure(IApplicationBuilder app, IHostingEnvironment env){    app.Use(async (context, next) =>    {        try        {            await next();        }        finally        {            var test = context.Response.StatusCode;            //test=200 when exception is thrown from Mvc()        }    });    app.UseMvc();}Response.StatusCode如果控制器抛出 ,为什么未设置Exception?这似乎非常令人惊讶且没有记录。它似乎与管道的概念不一致,例如。401和404此时已经设置好了。这是一个错误还是设计使然?
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞

错误处理不是 MVC 中间件的责任/关注点。异常只会冒泡,其他中间件(例如开发人员异常页面或异常处理程序)应该处理此错误。


您可以通过添加试试这个UseDeveloperExceptionPage()或UseExceptionHandler() 以前的UseMvc()呼叫。例如:


public void Configure(IApplicationBuilder app)

{

    app.UseExceptionHandler("/path/to/error/page");

    app.UseMvc();

}


查看完整回答
反对 回复 2021-06-20
  • 2 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信