为什么不建议使用 e.printStrackTrace()
...小于 1 分钟
为什么不建议使用 e.printStrackTrace()
一、前言
前段时间梳理了老项目的异常日志,发现了很多地方还在用 e.printStackTrace() 甚至 System.out.println() 来打印异常信息,统一改用 log.error() 的形式。
二、原因
首先,e.printStackTrace() 不会将错误日志打印到系统指定的日志中,在生产环境如果出现了异常可能导致不能及时定位到异常位置,另一个重要原因是 e.printStackTrace() 可能会导致锁死!
e.printStackTrace() 要打印字符串输出到控制台上,会产生错误堆栈信息,大量字符串填到字符串池内存空间中,如果短时间内抛异常过多,就会导致内存空间被占满,线程阻塞等内存,进而导致锁死。
Powered by Waline v3.3.0