当前位置: 首页 > wzjs >正文

邢台哪里有做网站的免费发帖推广平台有哪些

邢台哪里有做网站的,免费发帖推广平台有哪些,wordpress贴代码,苏州建行网站首页文章目录 前言一、异常筛选器的核心概念用途:实现接口:执行时机: 二、使用步骤1.创建自定义异常筛选器2.注册异常筛选器全局注册(对所有 Controller 生效):局部注册(通过特性标记特定的 **Contr…

文章目录

  • 前言
  • 一、异常筛选器的核心概念
    • 用途:
    • 实现接口:
    • 执行时机:
  • 二、使用步骤
    • 1.创建自定义异常筛选器
    • 2.注册异常筛选器
      • 全局注册(对所有 Controller 生效):
      • 局部注册(通过特性标记特定的 **Controller** 或 **Action**):
  • 三、异常筛选器与中间件异常处理的区别
  • 四、高级用法
  • 五、注意事项
  • 总结


前言

在 ASP.NET Core 中,异常筛选器(Exception Filters) 是 MVC 框架提供的一种机制,用于集中处理控制器(Controller)或 Action 方法中抛出的异常。它们允许你在异常发生时拦截并自定义处理逻辑,例如记录日志、返回特定格式的错误响应或执行恢复操作。


一、异常筛选器的核心概念

用途:

  1. 统一异常处理逻辑,避免重复的 try-catch 块。
  2. 根据异常类型返回不同的 HTTP 响应。
  3. 记录异常日志或触发监控告警。

实现接口:

  1. 同步筛选器:IExceptionFilter
  2. 异步筛选器:IAsyncExceptionFilter

执行时机:

  1. 控制器Action 方法抛出未处理的异常时触发。
  2. 不处理中间件或路由之外的异常(如身份验证中间件的异常需通过中间件处理)。

二、使用步骤

1.创建自定义异常筛选器

  1. 通过实现 IExceptionFilterIAsyncExceptionFilter 接口创建自定义筛选器::
    public class MyExceptionFilter : IAsyncExceptionFilter
    {private readonly IWebHostEnvironment hostEnv;public MyExceptionFilter(IWebHostEnvironment hostEnv){this.hostEnv = hostEnv;}public Task OnExceptionAsync(ExceptionContext context){string msg;if (hostEnv.IsDevelopment()){msg=context.Exception.ToString();}else{msg = "服务器端发生异常未处理。";}ObjectResult objectResult = new ObjectResult(new{Code = 500,Message = msg}){StatusCode = StatusCodes.Status500InternalServerError};//ObjectResult objectResult = new ObjectResult(new ProblemDetails//{//    Title = "服务器异常",//    Status = StatusCodes.Status500InternalServerError,//    Detail = msg//});context.Result = objectResult;context.ExceptionHandled = true;return Task.FromResult(objectResult);//return Task.CompletedTask;}
    }
    

2.注册异常筛选器

全局注册(对所有 Controller 生效):

  1. 在 Program.cs 中全局注册:
    //方式一:
    //builder.Services.AddControllers(opt =>
    //{
    //    opt.Filters.Add<MyExceptionFilter>();
    //    opt.Filters.Add<MyLogExceptionFilter>();
    //});
    //方式二:
    builder.Services.Configure<MvcOptions>(opt => {opt.Filters.Add<MyExceptionFilter>();opt.Filters.Add<MyLogExceptionFilter>();
    });
    

局部注册(通过特性标记特定的 ControllerAction):

  1. 在控制器或 Action 上使用 [TypeFilter] 或 [ServiceFilter]:
    [TypeFilter(typeof(MyExceptionFilter))]
    public class HomeController : Controller
    {// Action 方法
    }
    

三、异常筛选器与中间件异常处理的区别

特性异常筛选器中间件异常处理
作用范围仅处理 MVC 管道中的异常(控制器/Action)处理整个请求管道中的异常
上下文信息可访问 MVC 上下文(如 ActionContext)仅能访问 HttpContext
响应格式控制可返回 IActionResult(如 JSON/视图)需手动设置响应内容和类型
适用场景针对特定控制器或 Action 的精细化处理全局异常处理(如未捕获的中间件异常)

四、高级用法

  1. 处理特定异常类型:
    context.Result = new BadRequestObjectResult("Business rule violation.");
    
  2. 结合ProblemDetails(RFC 7807):
    context.Result = new ObjectResult(new ProblemDetails
    {Title = "Server Error",Status = StatusCodes.Status500InternalServerError,Detail = context.Exception.Message
    });

五、注意事项

  • 异常处理顺序:多个筛选器按注册顺序执行,可通过 Order 属性调整优先级。
  • 未处理的异常:若筛选器未标记 ExceptionHandled = true,异常会继续传播到中间件。
  • 性能:避免在筛选器中执行耗时操作(如数据库写入),建议异步处理。

总结

  • 通过合理使用异常筛选器,可以显著提升 ASP.NET Core 应用的健壮性和错误响应一致性。
  • 对于全局异常处理,建议结合中间件:
    UseExceptionHandlerapp.UseExceptionHandler(“/error”); (全局中间件)实现 更全面的覆盖。
http://www.dtcms.com/wzjs/180726.html

相关文章:

  • 免费发布信息的网站平台有哪些代运营竞价公司
  • 格力网站建设首页平台app开发制作
  • 建设银行黄陂支行网站关键词排名点击软件网站
  • 可以不花钱做网站吗谷歌浏览器在线入口
  • 网站建设公司找客户网络培训研修总结
  • 番禺网站建设seo咨询河北
  • 西安专业网站建设公司哪家好seo建站教程
  • 淮阴网站建设中国营销传播网官网
  • 网站建设一般多少钱比较合适百度官网进入
  • 广州专业做网站建设网站推广入口
  • 手表设计网站沈阳网站关键词优化公司
  • 无锡江阴做网站公司湖南靠谱关键词优化
  • 做网站策划书郑州专业网站建设公司
  • 做网站沈阳域名注册需要什么条件
  • wordpress全自动淘宝客百度关键词seo年度费用
  • 推广联盟网站怎么做成都网站seo技巧
  • 视频网站做视频容易火网站seo优化技巧
  • 石景山住房和建设委员会网站上海专业优化排名工具
  • 很多网站开发没有框架如何制作的哪里可以引流到精准客户呢
  • b2c网站开发方案网络推广都有哪些平台
  • 如何给网站划分栏目百度网盘搜索引擎盘多多
  • 营销型网站建设设定包括哪些方面seo搜索排名优化公司
  • 网批做衣服的网站新手怎样推销自己的产品
  • 香港服务器网站可以做淘宝客吗软文范文大全1000字
  • 网站建设后台什么意思seo网络优化是做什么的
  • 传销网站建设怎么建立公司网站
  • 企业文化网站建设网站域名注册查询
  • 1做网站推广11月将现新冠感染高峰
  • 廊坊 网站知名品牌营销策划案例
  • 初创公司网站设计苏州简单网页制作成品和代码