> 馆藏中心

e.printStackTrace()的问题

来源:cnblogs 编辑:吕秀强

catch(Exception e){e.printStackTrace() ;} 当try语句中出现异常是时,21135261会执行catch中的4102语句,java运行时系统会自动将catch括号中的Exception e 初始化,也就是实例化1653Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() ;。printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。(这是白话解释,比较容易理解),捕获异常的语句:e.printStackTrace();1、2113e是Throwable的实例异常对象5261,用在catch语句中,相当于一个形参,4102一1653旦try捕获到了异常,那么就将这个异常信息交给e,由e处理,printStackTrace()是异常类的一个方法。与它重载的方法还有printStackTrace(PrintStream s) 和printStackTrace(PrintWriter s)。2、在Throwable类中printStackTrace()内部是这样执行的:public void printStackTrace() {printStackTrace(System.err);}3、它调用了printStackTrace(PrintStream s)方法。err是System类当中的一个静态PrintStream类型字段。所以它能传递进去。扩展资料public void printStackTrace()将此 throwable 及其追踪输出至标准错误流。此方法将此 Throwable 对象的堆栈跟踪输出至错误输出流,作为字段 System.err 的值。输出的第一行包含此对象的 toString() 方法的结果。剩余行表示以前由方法 fillInStackTrace() 记录的数据。此信息的格式取决于实现,但以下示例是最常见的:java.lang.NullPointerExceptionat MyClass.mash(MyClass.java:9)at MyClass.crunch(MyClass.java:6)at MyClass.main(MyClass.java:3)参考资料百度百科-Java本回答被网友采纳,catch(Exception e){e.printStackTrace() ;} 当try语句中2113出现异常是时,会执行5261catch中的4102语句,java运行时系统会自动将catch括号中的Exception e 初始化,1653也就是实例化Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() ;。printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。(这是白话解释,比较容易理解) 只要记住这是对虚拟机内部的错误信息的提交并显示到前台的人机交换的机制就行了,将此 throwable 及其追踪输出至标准错误流。这个是API中对它的解释相当于用System.err.println()输出这个错误的具体信息,打印出错误栈里的内容www.179s.com防采集请勿采集本网。

调试的时候可以这样用,没事。上线后最好把日志写到文件。如果异常多的控制台都爆炸了,那应该先想办法把错误修复了。收获园豆:5

============================================

printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。

谢谢会长!

e.getMessage(); 只会获得具体的异常名称. 比如说NullPoint 空指针,就告诉你说是空指针 e.printStackTrace();会打出详细异常,异常名称,出错位置,便于调试用.. 一般一个异常至少几十行,呵呵..

上线前 的 测试阶段 肯定要检查 错误日志的,否则,系统会比较脆弱吧建议用日志工具

不用重写,public void printStackTrace(PrintWriter s),Java本来有这个方法。 源代码如下:已测试成功 import java.io.*; public class ThrowableTest extends FileNotFoundException { public static void main(String argv[]) { try { FileI

例如slf4jlog.error("异常方法 ,method={}", "test", e);收获园豆:5

源代码如下:已测试成功 import java.io.*; public class ThrowableTest extends FileNotFoundException { public static void main(String argv[]) { try { FileInputStream f = new FileInputStream("D:\\test.txt"); } catch (FileNotFoundEx

深层次的输出异2113常调用的流程。5261比方说最终显示的是个NullPointException,用 e.printStackTrace() 就可以输出整个4102调用流程1653,比方说是 main 方法调用了某个类,这个类又初始化了一个值,然后再××××的,最后到出错这行代码抛出个异常,作用就是把原始错误信息打印出来,printStackTracepublic void printStackTrace()将此 throwable 及其追踪2113输出至标准错误流。此方5261法将此 Throwable 对象的堆栈跟踪输出至错误输出流,作4102为字段1653 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]); } } 对于带初始化非空 cause 的 throwable 的追踪,通常应该包括 cause 的追踪。此信息的格式取决于实现,但以下示例是最常见的: HighLevelException: MidLevelException: LowLevelException at Junk.a(Junk.java:13) at Junk.main(Junk.java:4) Caused by: MidLevelException: LowLevelException at Junk.c(Junk.java:23) at Junk.b(Junk.java:17) at Junk.a(Junk.java:11) ... 1 more Caused by: LowLevelException at Junk.e(Junk.java:30) at Junk.d(Junk.java:27) at Junk.c(Junk.java:21) ... 3 more 注意,存在包含字符 "..." 的行。这些行指示此异常的椎栈跟踪的其余部分匹配来自异常(由 "enclosing" 异常引起)的堆栈跟踪底部的指定数量的帧。这种简便方法可以大大缩短通常情况下的输出长度,这里抛出了包装的异常,其方法与捕获“作为 cause 的异常”的方法相同。上述示例通过运行以下程序生成: public class Junk { public static void main(String args[]) { try { a(); } catch(HighLevelException e) { e.printStackTrace(); } } static void a() throws HighLevelException { try { b(); } catch(MidLevelException e) { throw new HighLevelException(e); } } static void b() throws MidLevelException { c(); } static void c() throws MidLevelException { try { d(); } catch(LowLevelException e) { throw new MidLevelException(e); } } static void d() throws LowLevelException { e(); } static void e() throws LowLevelException { throw new LowLevelException(); } } class HighLevelException extends Exception { HighLevelException(Throwable cause) { super(cause); } } class MidLevelException extends Exception { MidLevelException(Throwable cause) { super(cause); } } class LowLevelException extends Exception { }内容来自www.179s.com请勿采集。

本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。本文《e.printStackTrace()的问题》转载自cnblogs,版权归原作者所有,若侵权请联系:E-MAIL:513175919@qq.com
违法违规信息请立即联系本网可获得现金奖励,TEL:1-8-2-1-0-2-3-3-3-8-1(电话仅供违法违规信息举报,侵权类信息请EMAIL。)

www.179s.com false 互联网 http://www.179s.com/jsblogcnk/po/pokpph.html report 5636 调试的时候可以这样用,没事。上线后最好把日志写到文件。如果异常多的控制台都爆炸了,那应该先想办法把错误修复了。收获园豆:5============================================谢谢会长!上线前 的 测试阶段 肯定要检查 错误日志的,否则,系统会比较脆弱吧建议用日志工具例如slf4jlog.error("异常方法 ,method={}", "test", e);收获园豆:5

热门图片

经济金融企业管理法律法规社会民生科学教育降生活体育运动文化艺术电子数码电脑网络娱乐休闲行政地区心理分析医疗卫生