生产环境报错,查看日志发现报了 NPE 具体的报错信息也没有(公司框架中的异常处理类),所以只能用最原始的那种即:
e.printStackTrace()
通过写入
System.err
而将错误发送给标准错误流。通常这比把错误信息输出到
System.out
要好,因为
System.out
也许会被重定向。如果把结果送到
System.err
,它就不会随
System.out
一起被重定向,这样更容易被用户注意。
--ON JAVA8 第十五章 异常 421
在异常处理程序中,调用了在
Throwable
类声明(
Exception
即从此类继承)的
printStackTrace()
方法。 就像从输出中看到的,它将打印“
从方法调用处直到异常抛出处
”
的方法调用序列。这里,信息被发送 到了 System.out
,并自动地被捕获和显示在输出中。但是,如果调用默认版本:
e.printStackTrace();
信息就会被输出到标准错误流。
--ON JAVA8 第十五章 异常 422
简单来说就是, e.printStackTrace() 能把报错的位置以及整个堆栈信息打印出来,直接定位出问题的代码
@Test
public void testUser1() {
try {
String str = null;
str.split(".");
} catch (Exception e) {
e.printStackTrace();
}
}