目录
try with resource流程解析(JDK7及以上功能)
心得体会
关于T31项目的第三节课主要讲解了异常与日志的使用对我们项目运行的作用,如何正确的运用异常的捕捉及日志的使用。在还没上该节课前,我对异常的使用的感知在于不管代码会不会用错,复杂的业务代码就加try{}catch{}finally{},捕捉及手动处理异常;简单的就向上抛出异常而已,日志也是使用最简单的方法不管有没有用多打印了,导致有些时候系统异常也不知从何入手。听完这节课后,我对异常及日志的使用有的更深的认识,同时也知道日后在该方面的使用时应该注意什么。
前言
为正确的使用异常、日志为系统保驾护航: 1. 日志中异常应当描述导致当前异常发生的原因,尽量保留完整现场; 2. 用户可根据异常栈快速定位异常发生的位置; 3. 结合异常描述和异常栈解决异常
一、异常
java异常处理流程
java异常处理机制
P.S.
-
非本系统的接口使用时,使用Throwable异常类捕捉异常
-
多个异常时,catch先子类异常,不断升级
java异常体系
抛出与捕获的原则:
-
非必要不使用异常(稳定的使用代码尽量不要包含在异常捕捉的代码中)
-
使用描述性消息抛出异常
-
力所能及的异常一定要处理
-
异常忽略要有理有据
-
禁止在finally中进行return;
try with resource流程解析(JDK7及以上功能)
特殊异常场景及其处理对策
NPE(空指针异常)
foreach遍历集合的异常
二、日志
日志的功能
日志时效规约
记录用户敏感信息或操作的日志最好以warn的日志级别进行输出,且最小保存6个月并多机备份。
日志记录规约
-
系统应依赖使用日志框架(SLF4J、JCL)的API而不是具体日志库中的
-
在日志输出时,字符串变量之间的拼接使用占位符的方式
-
日志打印时禁止直接用json工具将对象转换成String
-
尽量用英文来描述日志错误信息
日志输出规约
扩展日志的设计与规约
三、错误码
错误码的功用
统一、规范的错误信息的表达,便于不同系统之间的沟通和人与系统的沟通,同时也便于不同人进行系统操作时,理解错误信息。
错误码规约