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

魔客吧是什麼程序做的网站品牌网站建设方

魔客吧是什麼程序做的网站,品牌网站建设方,北京建设工程造价信息,wordpress 3.8.1 下载异常处理 默认情况下,Sentinel 会抛出 BlockException 异常,如果希望自定义异常,则可以使用 SentinelResource 注解的 blockHandler 属性。 1、自定义异常处理 BlockExceptionHandler 自定义异常处理类实现 BlockExceptionHandler 接口&#…

异常处理

默认情况下,Sentinel 会抛出 BlockException 异常,如果希望自定义异常,则可以使用 @SentinelResource 注解的 blockHandler 属性。

1、自定义异常处理 BlockExceptionHandler

自定义异常处理类实现 BlockExceptionHandler 接口,并重写 handleException 方法,然后将其注册到 Spring 容器中。

基本概念:当 Sentinel 的规则(如流控规则、降级规则等)被触发时,会抛出 BlockException 异常。通过实现 BlockExceptionHandler 接口,可以自定义这些异常的处理逻辑

代码例子 🚀

@Component
public class CustomBlockExceptionHandler implements BlockExceptionHandler {@Overridepublic void handle(HttpServletRequest request, HttpServletResponse response, BlockException e) throws Exception {// 根据不同的规则类型返回不同的提示信息String msg = "请求被限流";int status = 429;if (e instanceof FlowException) {msg = "接口被限流了";status = 429;} else if (e instanceof DegradeException) {msg = "接口被降级了";status = 429;} else if (e instanceof ParamFlowException) {msg = "热点参数限流";status = 429;} else if (e instanceof AuthorityException) {msg = "授权规则不通过";status = 401;} else if (e instanceof SystemBlockException) {msg = "系统规则(负载/...)不满足要求";status = 429;}// 返回JSON格式的错误信息response.setContentType("application/json;charset=utf-8");response.setStatus(status);Map<String, Object> result = new HashMap<>();result.put("code", status);result.put("message", msg);result.put("timestamp", System.currentTimeMillis());response.getWriter().write(new ObjectMapper().writeValueAsString(result));}
}

2、自定义异常处理 blockHandler 

使用 @SentinelResource 注解的 blockHandler 属性,指定自定义的异常处理方法。🎁

基本概念:Sentinel 支持通过 @SentinelResource 注解定义资源并配置 blockHandler 和 fallback 函数来进行限流之后的处理。【兜底处理😎】

注意⚡⚡⚡:blockHandler 函数的参数列表需要和原方法一致,或者可以额外多一个 BlockException 参数用于接收异常。

代码例子 🚀

// 原本的业务方法.
@SentinelResource(blockHandler = "blockHandlerForGetUser")
public User getUserById(String id) {throw new RuntimeException("getUserById command failed");
}// blockHandler 函数,原方法调用被限流/降级/系统保护的时候调用
public User blockHandlerForGetUser(String id, BlockException ex) {return new User("admin");
}

3、特别注意🔕

BlockExceptionHandler 和 blockHandler 的关系:

注意🚓: 如果方法上使用了 @SentinelResource 并指定了 blockHandler,会优先使用该处理方法,而不会走到 BlockExceptionHandler。

http://www.dtcms.com/wzjs/785385.html

相关文章:

  • 网站制作的收费标准wordpress购买服务器
  • 动画型网站wordpress 伪静态500
  • 礼品网站建设公司郑州工装定制厂家哪家好
  • 贵阳营销网站建设公司工业产品设计与创客实践项目
  • 北京网站建设解决方案wordpress 分类目录代码
  • 运营推广网站建设网络和网站的区别
  • 雷州手机网站建设做外贸的网站要多少钱
  • 网站维护主要从哪几个方面做wordpress 移动端菜单
  • 西丽网站建设版式设计优秀作品欣赏
  • 建站公司新闻资讯wordpress描述设置
  • 做视频网站视频短片做的好微信商城网站
  • 网站策划专员所需知识wordpress 百度广告插件
  • 360网站地图怎么做竟网
  • 深圳品牌营销网站做网站用php如何学习
  • 域名除了做网站还能做什么网站的排版好看
  • 传统网站设计欧美模板网站
  • 免费建网站无广告网络管理系统论文
  • 南京做网站的公司怎样才能建设一歌网站
  • 做网站的那家公司好怎么做好网络销售技巧
  • 自己做网站 什么长沙游戏网站开发
  • 陕西营销型网站建设wordpress漂亮的主题
  • 昆明找工作哪个网站好app应用下载网站源码
  • 外贸建站有什么用韩国在中国做美食的视频网站有哪些
  • 可以免费建立网站吗网站即将 模板
  • 怎么做自己的导航网站网站优化排名易下拉软件
  • 网站规划和构成qq小程序api
  • 网页设计与制作精品课程网站台州建设质量监督网站
  • 网站建设的意义和目的做网站开发电脑配置
  • jsp ajax网站开发典型实例中国网站的特点
  • 自治区住房和城乡建设厅网站百度快速收录教程