zoukankan      html  css  js  c++  java
  • 阿里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级别日志来记录用户输入参数错误的情况。

  • 相关阅读:
    pycharm+Locust搭建性能测试框架和执行环境
    mapbox构建3D建筑展示
    搭建自动化测试平台 (selenium+testng+maven+svn+Jenkins)
    chromedriver与chrome各版本及下载地址
    python的位置参数、默认参数、关键字参数、可变参数区别
    ArcMap10.5几何网络分析术语
    CSS 水平居中
    行内元素的padding和margin是否有效
    一个未知宽高的元素在div中垂直水平居中
    CSS 3-浮动、定位
  • 原文地址:https://www.cnblogs.com/baokang/p/6348017.html
Copyright © 2011-2022 走看看