David622
2011-10-19 14:33 阅读 198
已采纳

Exception 是内部是怎么执行的?

public class Test {
public static void main(String[] args) {

System.out.println(Math.ceil(999));
System.out.println(Math.ceil(5.0));
System.out.println();
new RuntimeException("exception").printStackTrace();
System.out.println();
System.out.println(Math.ceil(5.0));
System.out.println(Math.ceil(5.0));
System.out.println(Math.ceil(5.0));

}
}

这个类的运行结果中,为什么打印出来的RuntimeException的地方不一样?
感觉是随机出现的。结果如下:
999.0
5.0

5.0
5.0
5.0
java.lang.RuntimeException: exception
at com.david.cc.Test.main(Test.java:18)

java.lang.RuntimeException: exception
at com.david.cc.Test.main(Test.java:18)
999.0
5.0

5.0
5.0

5.0

999.0
5.0

java.lang.RuntimeException: exception
5.0
5.0

at com.david.cc.Test.main(Test.java:18)
5.0

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    fmjsjx fmjsjx 2011-10-19 14:47

    Throwable.printStackTrace()方法是通过System.err打印的,所以和System.out的打印是可能会出现问题的。
    如果要严格控制打印输出地话请这样使用:
    [code="java"]
    Throwable.printStackTrace(System.out);
    [/code]

    点赞 评论 复制链接分享

相关推荐