阿里Java开发手册学习 2 异常日志

异常日志

 异常处理

1.不要捕获继承自RuntimeException的运行时异常类,这类异常通常由程序员来校验,来保证查询的健壮性。

2. 不要对大段代码 try catch,分清稳定代码和非稳定代码。对于非稳定代码,区分情况经行catch。

3.如果有try快放到了事物代码中,catch异常后,如果要回滚事物一定要手动回滚事物。

4.方法的返回值为null,必须添加注释充分说明说明情况下会返回null 。

5. 放置NPE,是程序员的基本修养,注意产生NPE的场景

    1)返回类型为包装数据类型,可能是null,返回int值时注意判空。

    2)数据库查询的结果可能为null。

    3)集合里的元素即使isNotEmpty,取出的数据元素也有可能为null。

    4)远程调用返回对象,一律要进行NPE判断。

    5)对于Session中获取的数据,建议NPE检查,避免空指针。

    6)级联调用obj.getA().getB().getC(); 一连串调用,易产生NPE。

6.对于”抛异常“还是“错误码”,对于公司外的http/api开放接口,必须使用“错误码”;而应用内部推荐异常抛出;跨应用间RPC调用优先考虑使用Result方式,封装isSuccess ,code,message

7.避免出现tt重复的代码,必要时抽取共性方法,或者抽象公共类,甚至是公共模块。

 日志规约

1.日志记录请使用以下方式

import org.slf4j.Logger; 

import org.slf4j.LoggerFactory; 

private static final Logger logger = LoggerFactory.getLogger(Abc.class); 

2.对于trade/debug/info级别的日志输出,必须使用条件输出形式或者使用占位符的方式。以后所有的日志输出统一使用占位符的形式。

3.异常信息应该包括2类:案发现场信息异常堆栈信息。

    例:logger.error(各类参数或者对象toString + "_" + e.getMessage(), e); 

4.可以用warn级别日志来记录用户输入参数错误的情况。

 

posted @ 2017-01-24 23:14  马克队长  阅读(364)  评论(0编辑  收藏  举报