asp.net core web mvc之异常
生活随笔
收集整理的這篇文章主要介紹了
asp.net core web mvc之异常
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
與web api類似,asp.net core web mvc模板也是利用ExceptionHandler來處理錯誤,在starup的Configure配置數(shù)據(jù)發(fā)生時導(dǎo)向的/home/error
異常業(yè)務(wù)類定義如下
Controller.cs中,因為web mvc是有view的,所以把錯誤返回到ErrorViewModel到View前端進行顯示。同樣,業(yè)務(wù)異常類DaMeiException作為錯誤分類處理的標(biāo)志,從而完成異常的分類處理。
public IActionResult Privacy(){var ran = new Random();switch (ran.Next(1, 4)){case 1:int i = 0;var j = 10 / i;return Ok();case 2:throw new RegisteredException("這是一個錯誤");default:return View();}}[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]public IActionResult Error(){var context = HttpContext.Features.Get<IExceptionHandlerFeature>(); //如果是業(yè)務(wù)自定義異常,進行特殊處理if (context.Error is DaMeiException){return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier, ErrorMessage = context.Error.Message, ErrorType = "His" });}else{return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier, ErrorMessage = context.Error.Message, ErrorType = "System" });}}Error.schtml?完成具體數(shù)據(jù)的展示??
@model ErrorViewModel @{ViewData["Title"] = "錯誤"; } <h1 class="text-danger">錯誤</h1> <h2?class="text-danger">一個請求處理錯誤</h2> @if (Model.ShowRequestId) {<h3>@Model.ErrorType</h3><p><strong>請求ID:</strong> <code>@Model.RequestId</code></p><p>@Model.ErrorMessage</p> }???????每個框都有處理異常的方式,關(guān)鍵是要設(shè)計好業(yè)務(wù)系統(tǒng)中的異常關(guān)系,標(biāo)準化異常處理的流程和格式,方便日志,監(jiān)控系統(tǒng)采集匯總這些異常,為系統(tǒng)穩(wěn)定提供保駕護航。
?
總結(jié)
以上是生活随笔為你收集整理的asp.net core web mvc之异常的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# Span 源码解读和应用实践
- 下一篇: [C#.NET 拾遗补漏]12:死锁和活