java exception高阶理解之问题定位和监控报警

Exception的处理目的都是为了结构化日志打印 详见 结构化异常日志, 如何做好error日志结构化,便于日志监控过滤.

总结: exception让写代码和问题定位更优雅和方便.

那么为什么编程语言要设计异常呢?首先,引入异常之后,我们就可以把错误代码从正常代码中分离出来进行单独处理,这样使代码变得更加整洁;其次,当出现一些特殊情况时,我们还可以抛出一个检查异常,告知调用者让其处理。

背景: 你是否遇到过如下问题.

  1. 线上异常日志报警突然增加很多,但是其实都是多打印的error日志,放大了很多倍. 

      1.1 对外部调用try catch ,打印error,返回null. 上面抛nullPoint又打印. 可能又抓住,又打印. 级联try catch

      1.2 级联try catch,异常层层封装,error层层打Java_exception_如何优雅的处理异常_mikyz的博客-CSDN博客_java怎么处理exception印.

  2. 打印的日志缺少了关键现场信息! 比如一个下单,获取商品的图片失败,图片url没有打印. 又比如获取一个用户的多个订单,获取某个订单时失败. 订单Id没有打印.

   3. 日志分析 grep时 ,tracId对应的行信息较少,无法有效筛选和过滤! 例如下单失败,是因为下游hsfTimeOut 还是 下游系统异常, 还是下游业务异常.

exception,日志打印(warn还是error),filter层日志打印,依赖层日志打印? 

如何在一行上定位问题? 

如何确保一个异常只打印一行error日志?

附录: 

这些附录其实只是说业界现状,但都不是终极方案.

  1. Alibaba 代码规范 - 异常 码出高效 中的异常相关
1, 码出高效 ---异常篇_in the way的博客-CSDN博客

【码出高效】异常分类_刷题刷题nn的博客-CSDN博客

  2.  Java_exception_如何优雅的处理异常 Java_exception_如何优雅的处理异常_mikyz的博客-CSDN博客_java怎么处理exception

  3. Java 异常设计最佳实践 Java 异常设计最佳实践_weixin_34160277的博客-CSDN博客 

  4. Java中关于异常处理的10个最佳实践 

   有用的信息

5. Java高级系列——何时使用、如何使用异常(Exceptions) Java高级系列——何时使用、如何使用异常(Exceptions)_RonTech的博客-CSDN博客_exceptions java

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值