在一個(gè)簡(jiǎn)單的應(yīng)用程序中: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如果控制器拋出 ,為什么未設(shè)置Exception?這似乎非常令人驚訝且沒(méi)有記錄。它似乎與管道的概念不一致,例如。401和404此時(shí)已經(jīng)設(shè)置好了。這是一個(gè)錯(cuò)誤還是設(shè)計(jì)使然?
2 回答

達(dá)令說(shuō)
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
錯(cuò)誤處理不是 MVC 中間件的責(zé)任/關(guān)注點(diǎn)。異常只會(huì)冒泡,其他中間件(例如開(kāi)發(fā)人員異常頁(yè)面或異常處理程序)應(yīng)該處理此錯(cuò)誤。
您可以通過(guò)添加試試這個(gè)UseDeveloperExceptionPage()或UseExceptionHandler() 以前的UseMvc()呼叫。例如:
public void Configure(IApplicationBuilder app)
{
app.UseExceptionHandler("/path/to/error/page");
app.UseMvc();
}
- 2 回答
- 0 關(guān)注
- 141 瀏覽
添加回答
舉報(bào)
0/150
提交
取消