首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

小弟请问个关于printStackTrace()的小疑点

2012-04-11 
小弟请教个关于printStackTrace()的小问题~比如我有个程序:try{//省略}catch(Exception e){System.err.pri

小弟请教个关于printStackTrace()的小问题~
比如我有个程序:
   
  try{
  //省略
  }catch(Exception e){
  System.err.println("出错了!");
  e.printStackTrace();
  }

  System.out.println("异常演示。。。");



运行结果是:打印的堆栈信息位置不固定,就是main方法里输出的“异常演示。。。”这几个字有时在堆栈信息上边,有时插在好多堆栈信息的中间,请问为什么不是把堆栈信息都打印完了再输出“异常演示。。。”这几个字呢?不是顺序执行的吗?

[解决办法]
应该是由于你使用System.out导致的,

Java code
public void printStackTrace() {        printStackTrace(System.err);    }public void printStackTrace(PrintStream s) {        synchronized (s) {            s.println(this);            StackTraceElement[] trace = getOurStackTrace();            for (int i=0; i < trace.length; i++)                s.println("\tat " + trace[i]);            Throwable ourCause = getCause();            if (ourCause != null)                ourCause.printStackTraceAsCause(s, trace);        }    } 

热点排行