e.printStackTrace()介绍
public void printStackTrace()将此 throwable 及其追踪输出至标准错误流。此方法将此 Throwable 对象的堆栈跟踪输出至错误输出流,作为字段 System.err 的值。输出的第一行包含此对象的 toString() 方法的结果。剩余行表示以前由方法 fillInStackTrace() 记录的数据。此信息的格式取决于实现,但以下示例是最常见的:
java.lang.NullPointerException
at MyClass.mash(MyClass.java:9)
at MyClass.crunch(MyClass.java:6)
at MyClass.main(MyClass.java:3)
本示例通过运行以下程序生成:
class MyClass {
public static void main(String[] args) {
crunch(null);
}
static void crunch(int[] a) {
mash(a);
}
static void mash(int[] b) {
System.out.println(b[0]);
}
}
还有就是,
catch(Exception e){
e.printStackTrace() ;
}
当try语句中出现异常是时,会执行catch中的语句,java运行时系统会自动将catch括号中的Exception e 初始化,也就是实例化Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() ;。
printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。(这是白话解释,比较容易理解)
关于System.out.println(e)与e.printStackTrace()
在抛出异常的情况下,有很多方法,System.out.println(e);这个方法打印出异常,并且输出在哪里出现的异常;e.printStackTrace()也是打印出异常,但是它还将显示出更深的调用信息。比如说:
A extends ---> B extends---> C
当在创建A的过程中出现问题了,我们抛出异常。<
System.out.println(e),除了标准异常外,只打印at A 然后再向外层层输出。
e.printStackTrace(),除了标准异常外,打印
at C
at B
at A
.......再向外层调查。
在向外层调查的情况下,都一样。最后都会回到com.sun.midp.main.Main.main
System.out.println();当发生异常时显示你自己设定的字符串信息;就比如下面的代码,try里面进行IO操作,你知道要抛出异常肯定也是IO异常,catch里面就写上特定的IOException,自己打印就行了
try{
//function
}
catch(IOException exc){
System.out.println("IOException");
}
e.printStackTrace();是打印异常的堆栈信息,指明错误原因,其实当发生异常时,通常要处理异常,这是编程的好习惯,所以e.printStackTrace()可以方便你调试程序!
最新文章
- LabVIEW设计模式系列——资源关闭后错误处理
- 由fprintf和printf看C语言三种标准流
- 四、Mp3文件类型及其判断
- 【线段树求逆序数】【HDU1394】Minimum Inversion Number
- Nio得知3——该示范基地:多路复用器模式
- IOS GCD使用实例大全
- BZOJ 3028 食物 生成函数
- springboot + mybatis 前后端分离项目的搭建 适合在学习中的大学生
- ZKWeb网页框架1.6正式发布
- IntelliJ Idea中创建package的问题
- Oracle 12c 操作 CDB PDB
- 解决windows10 启动蓝屏 ntfs file system
- Windows下安装Redmine 2.5.2不全然指南
- vim 将文件从dos格式转换到unix格式
- CS无线电语
- Android Studio 无法预览布局问题:com/android/util/PropertiesMap
- bzoj 1123 [POI2008]BLO Tarjan求割点
- E. XOR and Favorite Number
- Google Careers 程序员必修课
- PHP用*隐藏中文问题