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

免费建站系统怎么用拼多多网站建设过程

免费建站系统怎么用,拼多多网站建设过程,云主机推荐,太原网站排名公司哪家好文章目录 前言一、异常筛选器的核心概念用途:实现接口:执行时机: 二、使用步骤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://QOuONbC9.cLjpz.cn
http://icbmKw2E.cLjpz.cn
http://LylbY2Xd.cLjpz.cn
http://XuPlRyVH.cLjpz.cn
http://VzV0W7h1.cLjpz.cn
http://o8hRrwhi.cLjpz.cn
http://Y685vEMi.cLjpz.cn
http://mOoLuSD6.cLjpz.cn
http://1mvJziXt.cLjpz.cn
http://wJrfcn3C.cLjpz.cn
http://WiB6p7UO.cLjpz.cn
http://LIYPL0lW.cLjpz.cn
http://CwRtX1Y4.cLjpz.cn
http://V4x5iw1T.cLjpz.cn
http://T131D7gQ.cLjpz.cn
http://hLMwcuMC.cLjpz.cn
http://2m2qpd3M.cLjpz.cn
http://ELD0ZLgN.cLjpz.cn
http://QLeoxRUr.cLjpz.cn
http://PYlvJir6.cLjpz.cn
http://7rucZeVc.cLjpz.cn
http://oEiNKbgA.cLjpz.cn
http://HGNv4DGf.cLjpz.cn
http://xp2skULx.cLjpz.cn
http://W1RLd4L2.cLjpz.cn
http://yxX53PXA.cLjpz.cn
http://McU6vwqG.cLjpz.cn
http://RHAP1WlD.cLjpz.cn
http://mgPxBU10.cLjpz.cn
http://KYnN7AjI.cLjpz.cn
http://www.dtcms.com/wzjs/692078.html

相关文章:

  • 买域名做网站遂宁公司做网站
  • 舟山市规划建设局网站青岛建站公司电话
  • 高校网站站群电子商务概论知识点
  • 相亲网与做网站网站流量外流
  • 天津市建设公司网站装修设计收费标准2022
  • 门户网站建设公司市场专业品牌网站设计公司
  • 蕲春县住房和城乡建设局网站网站建设科技北京有限公司
  • 厦门的网站建设公司哪家好网站建设找推推蛙
  • 加强公司网站平台建设的意义网站被墙了怎么办
  • 做网站的收益来源php做网站页面
  • 网站广审怎么做html5 企业网站模板
  • 静态网站建设摘要河南网站推广那家好
  • 新增网站建设方案贵州省住房和城乡建设厅证件查询
  • 清新区住房和城乡建设局网站网站首页不见怎么做
  • 东莞做网站平台怎样做网络推广赚钱
  • 上海市建设工程咨询网荆州seo优化
  • 网站建设的后期维护费用网页制作与网站建设知识框架图
  • 网站建设不好国内网站赏析
  • 3有免费建网站wordpress标题省略
  • 优化网站结构一般包括深圳网站建设定制
  • 境外电商做的什么平台广州seo招聘
  • 关于网站建设申请报告深圳推荐企业网站制作维护
  • 新余 网站建站 设计 公司外贸网站推广策划
  • dz网站地图怎么做中国建设银行网站查余额
  • 网站建设费用的会计核算wordpress 喜欢插件
  • 网站 流程优化html基础知识思维导图
  • 招商网站建设网下载168网站
  • vs2105制作个人网站网站专题报道页面怎么做的
  • 买布自己做网站衣服的软件商店下载官网
  • 公司自己的网站叫什么wordpress加载慢