zoukankan      html  css  js  c++  java
  • java throw new Exception throw e

      public static void main(String[] args) {
        try {
          ttt();
        } catch (Exception e) {
          logger.error("err", e);
        }
      }
    
      public static void ttt() {
        try {
          ttt2();
    
        } catch (Exception e) {
          logger.error("err", e);
          throw e;
        }
      }
    
      public static void ttt2() {
        int count = 1 / 0;
      }
    

    catch后打印e

    catch后不打印e

    结论?

    如果项目代码里面有统一异常处理
    如spring的 @ControllerAdvice. @ExceptionHandler(BindException.class) 中打印了整个异常堆栈.
    我们在业务方法里面logger一次e,会导致重复打印,日志不好看。

    所以只需要在统一异常处理/业务方法中 选其一:

    1. 如果没有统一异常处理,还是业务方法打印e比较好;
    2. 如果有,那可以只打印相关错误信息,或者直接throw原来的,不要catch以后,只打印原ex, 又不做其他任何处理,继续抛出新的,会造成日志打印多一层(仅供参考)
      public static void ttt(String param) {
        try {
          ttt2();
        } catch (Exception e) {
          // catch后
          logger.error("err. param:{}", param);
          throw new RuntimeException("hello err");
        }
      }
    
  • 相关阅读:
    第一篇正式文章 随便聊聊吧
    CSS 28 块之间的空格
    CSS 27 贴在下方
    CSS 26 左右固定
    CSS 25 垂直居中
    CSS 24 左侧固定
    CSS 23 水平居中
    CSS 22 显示方式
    CSS 21 浮动
    CSS 20 相对定位
  • 原文地址:https://www.cnblogs.com/bigorang/p/15707906.html
Copyright © 2011-2022 走看看