本帖最后由 xingqi10 于 2012-11-12 22:33:16 编辑

解决方案 »

  1.   


    是 IDE 的多线程输出造成的Eclipse 和 Netbeans 都是用一个专门的线程用来输出 System.out,另一个专门的线程用来输出 System.err当你的程序里同时有这两种输出的时候,就会表现为多线程式的随机输出,如果单看你用 System.out 输出的内容,还是按顺序的。你的输出都是用了 System.out ,只有这一句:e.printStackTrace();是用了 System.err,下面是这个方法的源代码,在 Throwable.java 中:
        public void printStackTrace() {
            printStackTrace(System.err);
        }
      

  2.   

    如果你用控制台来运行,就不会有这个问题。如果你把e.printStackTrace();改成 e.printStackTrace(System.out);也不会有这个问题。