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级别日志来记录用户输入参数错误的情况。

  • 相关阅读:
    mongodb
    python中读取文件的read、readline、readlines方法区别
    uva 129 Krypton Factor
    hdu 4734
    hdu 5182 PM2.5
    hdu 5179 beautiful number
    hdu 5178 pairs
    hdu 5176 The Experience of Love
    hdu 5175 Misaki's Kiss again
    hdu 5174 Ferries Wheel
  • 原文地址:https://www.cnblogs.com/baokang/p/6348017.html
Copyright © 2011-2022 走看看