今天T31课程内容主要讲解了java异常知识介绍、日志规约。错误码规范以及一些例子演示,接下来我在本章笔记将知识点重新梳理一遍。
JAVA异常体系 使用异常为系统保驾护航JAVA异常处理流程 JAVA异常处理机制 枝繁叶茂的JAVA异常体系• 异常应当描述导致当前 异常发生的原因
• 根据异常栈快速定位 到异常发生的位置
• 结合异常描述和异 常栈解决异常
孤尽老师旅行的例子,我们可以很清晰的将异常结合实际生活的例子来理解。
异常处理 异常抛出与捕获的原则Error 不可抗拒因素引起的,多为jvm虚拟机内部引起的如内存泄漏等,解决办法就是从新启动项目
Exception分为受检异常和非受检异常。其中受检异常通过编译器就可以检查出来,通过throw 和thorws来解决。非受检查异常就需要开发人员结合业务实际情况去提前做好一些检查等
Java异常体系之try…catch…finally流程解析 JDK7资源关闭新姿势之try with resource流程解析 特殊NPE场景及其处理对策 特殊异常场景及其处理对策• 非必要不使用异常
• 使用描述性消息抛出异常
• 力所能及的异常一定要处理
• 异常忽略要有理有据
foreach遍历集合的异常
日志规约 日志的功能 日志时效规约 日志记录规约• 不要在foreach循环 里进行元素的 remove/add *** 作
• foreach循环会自 动跳过遍历空集合 ,如果对于有null 值的集合,碰到 null时需注意NPE
日志输出规约 错误码规约 错误码的功用• 系统应依赖使用日志框架(SLF4J、JCL)的 API而不是具体日志库中的
• 在日志输出时,字符串变量之间的拼接使用占位符的方式
• 日志打印时禁止直接用 JSON 工具将对象转换成 String
• 尽量用英文来描述日志错误信息
错误码规约• 系统与系统 间的沟通
• 人与人之间 的沟通
• 人与系统之间 的沟通
异常与日志综合实践 在Controller层统一捕获异常 全局异常处理组件GlobalExceptionHandler 的定义和使用 API层异常设计实践 Service层异常设计实践 DAO数据处理层异常、日志实践 使用MDC实现轻量级调用链路追踪• 定义时要有字母也要有数字
• 要分级分类管理
• 不能直接输出给用户作为 提示信息使用
• 不要与业务架构或者组织架构挂钩
• 使用者避免随意定义新的错误码
• 便于不同语言的开发者之间协作
分布式链路追踪
将一次分布式请求还原成调用链路,将一次分布式请求的调用 情况集中展示,比如各个服务节点上的耗时、请求具体到达哪 台机器上、每个服务节点的请求状态等等
链路跟踪主要功能
用有限的异常类处理业务中复杂多变的无限可能 降低系统的维护难度与过度设计、冗余的手段• 故障快速定位
• 链路性能可视化
• 链路分析
本章内容主要讲解了异常、日志、错误码的知识点,要结合业务实际需求来设计一套适合自己项目的一套规范,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)