国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

異常過濾器—MVC中異常過濾器使用

這篇具有很好參考價值的文章主要介紹了異常過濾器—MVC中異常過濾器使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、什么是異常過濾器?

異常過濾器(Exception Filters)是 ASP.NET Core 中用于處理全局異常的機(jī)制。它們允許你在發(fā)生異常時捕獲、處理和記錄異常,并提供自定義的異常處理邏輯。異常過濾器在整個應(yīng)用程序范圍內(nèi)生效,可以用于處理各種異常情況。用于實現(xiàn)常見的錯誤處理策略,沒有之前和之后事件,處理 Razor 頁面或控制器創(chuàng)建、模型綁定、操作過濾器或操作方法中發(fā)生的未經(jīng)處理的異常。但無法捕獲資源過濾器、結(jié)果過濾器或 MVC 結(jié)果執(zhí)行中發(fā)生的異常 。
異常過濾器—MVC中異常過濾器使用

二、異常過濾器實現(xiàn)

異常過濾器定義:

異常過濾器的定義,需要實現(xiàn)接口IExceptionFilter 或者IAsyncExceptionFilter,該接口包含一個 OnException 方法或者OnExceptionAsync方,用于處理發(fā)生的異常,繼承后重寫此方法。

#region << 版 本 注 釋 >>
/*----------------------------------------------------------------
 * 創(chuàng)建者:碼農(nóng)阿亮
 * 創(chuàng)建時間:2023/8/15 14:02:01
 * 版本:V1.0.0
 * 描述:
 *
 * ----------------------------------------------------------------
 * 修改人:
 * 時間:
 * 修改說明:
 *
 * 版本:V1.0.1
 *----------------------------------------------------------------*/
#endregion << 版 本 注 釋 >>
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using System;

namespace MyWebApp.Filter
{
    /// <summary>
    /// 異常過濾器
    /// </summary>
    public class ExceptionFilter : Attribute, IExceptionFilter
    {
        /// <summary>
        /// 沒有之前和之后事件,當(dāng)程序發(fā)生沒有捕獲的異常時候執(zhí)行
        /// </summary>
        /// <param name="context"></param>
        public void OnException(ExceptionContext context)
        {
            //異常信息
            var ex = context.Exception;
            //這里可以寫入異常日志到數(shù)據(jù)庫、文件或者控制臺
            Console.WriteLine("錯誤信息:"+ex.Message);

            /*
             * 方便測試,此處將錯誤日志信息返回
             */
            context.Result = new ContentResult()
            {
                Content = ex.Message,
                ContentType = "text/html"
            };

        }
    }
}

添加到全局過濾器:

    services.AddMvc(options =>
        {
            //異常過濾器
           options.Filters.Add<ExceptionFilter>();
        });

添加測試Action:

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;

namespace MyWebApp.Controllers
{
   [Route("api/[controller]")]
   [ApiController]
   public class ExceptionFilterController : ControllerBase
   {

       /// <summary>
       /// 測試:手動拋出一個未捕獲異常
       /// </summary>
       /// <returns></returns>
       [HttpGet]
       public ActionResult Test()
       {
           throw new Exception("Oh,My God,A Exception Occurred......");
       }
   }
}

三、驗證:

接口Action訪問調(diào)用:

訪問地址:

https://localhost:5001/ExceptionFilter/Test

控制臺輸出異常信息:
異常過濾器—MVC中異常過濾器使用

調(diào)用接口時異常過濾器返回異常:
異常過濾器—MVC中異常過濾器使用文章來源地址http://www.zghlxwxcb.cn/news/detail-649135.html

到了這里,關(guān)于異常過濾器—MVC中異常過濾器使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包