.netcore2.1 封裝全域性列印異常資訊過濾器
阿新 • • 發佈:2021-11-10
- 設定異常資訊攔截
public class GlobalExceptionFilter : IExceptionFilter { readonly ILogger _logger; public GlobalExceptionFilter(ILogger<GlobalExceptionFilter> logger) { _logger = logger; } public void OnException(ExceptionContext context) { _logger.LogError(context.Exception, context.Exception.Message); if (context.Exception is ShowMessageException) { context.Result = new JsonResult(context.Exception.Message); } else { context.Result = new JsonResult("伺服器異常"); } context.ExceptionHandled = true; } }
- 定義異常類
public class ShowMessageException : Exception { public ShowMessageException(string message) : base(message) { } }
- 在Startup.cs檔案中,注入服務
public void ConfigureServices(IServiceCollection services) { //filters services.AddScoped<GlobalExceptionFilter>(); }