Java获取e.printStackTrace()打印的信息方式
程序员文章站
2022-06-23 08:07:22
获取e.printstacktrace()打印的信息某些情况下,我们需要获取应用打印的异常信息,这时就可以借助stringwriter和printwriter两个类来获取异常信息具体用法如下:...
获取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 获取注解信息的方法
-
Java 反射获取类详细信息的常用方法总结
-
java 获取注解信息的方法
-
微信开发中使用通用函数处理,以重定向的方式实现用户身份信息的获取并转回原来页面
-
五分钟学Java:打印Java数组最优雅的方式是什么?
-
微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。
-
java获取文件的mime,java获取文件是不是文本,java获取文件类型(非后缀方式)
-
java反射-使用反射获取类的所有信息
-
Java Gradle项目中的资源正确获取方式
-
java打印异常Exception的栈信息