内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

asp.net中ExceptionFilter過濾器怎么用-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“asp.net中ExceptionFilter過濾器怎么用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“asp.net中ExceptionFilter過濾器怎么用”這篇文章吧。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括包河網(wǎng)站建設(shè)、包河網(wǎng)站制作、包河網(wǎng)頁制作以及包河網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,包河網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到包河省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

簡介

異常過濾器,顧名思義,就是當(dāng)程序發(fā)生異常時(shí)所使用的過濾器。用于在系統(tǒng)出現(xiàn)未捕獲異常時(shí)的處理。

實(shí)現(xiàn)一個(gè)自定義異常過濾器

自定義一個(gè)全局異常過濾器需要實(shí)現(xiàn)IExceptionFilter接口

public class HttpGlobalExceptionFilter : IExceptionFilter
  {
    public void OnException(ExceptionContext context)
    {
      throw new NotImplementedException();
    }
  }

IExceptionFilter接口會要求實(shí)現(xiàn)OnException方法,當(dāng)系統(tǒng)發(fā)生未捕獲異常時(shí)就會觸發(fā)這個(gè)方法。OnException方法有一個(gè)ExceptionContext異常上下文,其中包含了具體的異常信息,HttpContext及mvc路由信息。系統(tǒng)一旦出現(xiàn)未捕獲異常后,比較常見的做法就是使用日志工具,將異常的詳細(xì)信息記錄下來,方便修正調(diào)試。下面是日志記錄的實(shí)現(xiàn)?! ?/p>

  /// <summary>
  /// 全局異常過濾器
  /// </summary>
  public class HttpGlobalExceptionFilter : IExceptionFilter
  {
    readonly ILoggerFactory _loggerFactory;
    readonly IHostingEnvironment _env;

    public HttpGlobalExceptionFilter(ILoggerFactory loggerFactory, IHostingEnvironment env)
    {
      _loggerFactory = loggerFactory;
      _env = env;
    }

    public void OnException(ExceptionContext context)
    {
      var logger = _loggerFactory.CreateLogger(context.Exception.TargetSite.ReflectedType);

        logger.LogError(new EventId(context.Exception.HResult),
        context.Exception,
        context.Exception.Message);

        var json = new ErrorResponse("未知錯(cuò)誤,請重試");

        if (_env.IsDevelopment()) json.DeveloperMessage = context.Exception;

        context.Result = new ApplicationErrorResult(json);
        context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError;

      context.ExceptionHandled = true;
    }

public class ApplicationErrorResult : ObjectResult
  {
    public ApplicationErrorResult(object value) : base(value)
    {
      StatusCode = (int)HttpStatusCode.InternalServerError;
    }
  }

public class ErrorResponse
  {
    public ErrorResponse(string msg)
    {
      Message = msg;
    }
    public string Message { get; set; }
    public object DeveloperMessage { get; set; }
  }

注冊全局過濾器

過濾器已經(jīng)編寫完畢,接下來就需要在asp.net core MVC中注冊。找到系統(tǒng)根目錄Startup.cs文件,修改ConfigureServices方法如下

 services.AddMvc(options =>
      {
        options.Filters.Add<HttpGlobalExceptionFilter>();
      });

測試

在請求中拋出一個(gè)異常

asp.net中ExceptionFilter過濾器怎么用

日志正確捕獲到異常信息

asp.net中ExceptionFilter過濾器怎么用

瀏覽器返回500錯(cuò)誤,并且返回自定義的錯(cuò)誤信息。

asp.net中ExceptionFilter過濾器怎么用

以上是“asp.net中ExceptionFilter過濾器怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享名稱:asp.net中ExceptionFilter過濾器怎么用-創(chuàng)新互聯(lián)
路徑分享:http://www.rwnh.cn/article0/dcepoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、商城網(wǎng)站、動態(tài)網(wǎng)站網(wǎng)站改版、靜態(tài)網(wǎng)站做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營
磐安县| 宁安市| 名山县| 宜黄县| 会东县| 张家川| 威海市| 永嘉县| 德惠市| 镇远县| 芒康县| 花莲县| 怀远县| 安化县| 南部县| 莒南县| 化德县| 综艺| 宜丰县| 八宿县| 尚义县| 吉林省| 四平市| 宜君县| 西畴县| 乐山市| 乐山市| 琼中| 滦平县| 乐亭县| 渭源县| 喀喇沁旗| 延吉市| 科尔| 准格尔旗| 高清| 普兰县| 工布江达县| 黑水县| 于田县| 嘉峪关市|