前言
今天主要学习内容异常处理与日志相关的知识,在开发项目的时候这两块是非常重要也绕不开的。
JAVA异常
异常处理流程
异常抛出与捕获的原则
- 非必要不使用异常
- 使用描述性消息抛出异常
- 力所能及的异常一定要处理
- 异常忽略要有理有据
try with resource
创建关闭资源推荐使用try with resource语法
Optional
级联调用判空可以使用Optional,orElse()语法。
orElse语法作用是设置默认值,如果是NPE会返回指定默认值。
特殊异常场景
foreach遍历进行元素的 remove/add操作
日志规约
日志时效规约
- 当天日志命名 "应用名.log"
- 过往日志命名 "{logname}.log.{保存日期}"
- 日志文件最少保存15天
- 敏感操作信息联机存储6个月
日志记录规约
- 系统应依赖使用日志框架(SLF4J,JCL)的API而不是具体日志库中的
- 日志输出时,字符串变量之间拼接使用占位符方式
- 日志打印时禁止使用JSON工具将对象转换成String
- 尽量使用英文描述日志错误信息
日志输出规约
- 日志信息开关判断
- 异常信息要完整
- 避免重复打印日志
错误规约
错误码规约
- 定义时要有字母也要有数字
- 分级分类管理
- 不能直接输出给用户作为提示
- 不与业务架构或组织架构挂钩
- 避免随意定义新错误码
附上老师给出的错误码定义
总结
开发时应遵守异常与日志规约,对于排查问题,监控一定大有裨益。