相信大家在开发代码的过程中都用过try catch语句,不知道有没有人写过这种语句
try {
............
} catch (Exception e) {
e.printStackTrace();
log.error("error",e);
}
或者
try {
............
} catch (Exception e) {
e.printStackTrace();
log.error("error"+e);
}
上述两种情况都会有着一些比较严重的问题,先说第一种 e.printStackTrace();这个方法会将错误的信息存储到字符串常量池,严重浪费内存,很可能会导致服务挂掉,所以这种是禁止使用的,而第二种,用到log日志的只有一个参数的构造的方法,这样写会导致错误信息被吞掉,所以正确写法应该是 log.error("error",e);试用两个参数的构造方法