Java获取e.printStackTrace()打印的信息方式
获取e.printStackTrace()打印的信息
某些情况下,我们需要获取应用打印的异常信息,这时就可以借助StringWriter和PrintWriter两个类来获取异常信息
具体用法如下:
try{
throw new NullPointerException();
}catch (Exception e){
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw,true));
String infomsg = sw.toString();
System.out.println(infomsg);
}
e和e.printStackTrace()方法
e初始化,也就是实例化Exception类型的对象,e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace()。
当然,我们也可以用System语句输出,那么这两个语句有什么区别呢?
1、两个输出语句都能输出
System语句可以提示你异常发生的位置;但e.printStackTrace()可以显示更深的调用关系。
例如:程序中有继承的关系
Rose extends Flower ; Flower extends Plant;假如我们在创建 Rose
的时候发生异常,那么System语句就会输出异常 at Rose ,然后向外层输出
但e.printStackTrace()输出除了标准异常外,打印 at Plant at Flower at Rose
…….再向外层调查。 在向外层调查的情况下,都一样
2、System.out.println();
当发生异常时显示你自己设定的字符串信息;e.printStackTrace();是打印异常的堆栈信息,指明错误原因。
note:其实当发生异常时,通常要处理异常,这是编程的好习惯,所以e.printStackTrace()可以方便你调试程序!
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java使用JDBC向MySQL数据库批次插入10W条数据(测试效率)
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?今天小编通过本教程给大家介绍下2016-12-12
SpringBoot整合redis+Aop防止重复提交的实现
Spring Boot通过AOP可以实现防止表单重复提交,本文主要介绍了SpringBoot整合redis+Aop防止重复提交的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-07-07
Java List Object[]转换成List T的实例
这篇文章主要介绍了Java List Object[]转换成List T的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-09-09


最新评论