在Javaexception中表示什么?

在Javaexception中表示什么?

例如:

 BlahBlahException... at java.io.FileInputStream.(FileInputStream.java:20) 

在构造对象时抛出exception,有两种选择:

  • 在构造函数中
  • 在初始化变量时

看看我写的这个演示: http : //ideone.com/Mm5w5


 class Main { public static void main (String[] args) throws java.lang.Exception { try { new Test(); } catch (Exception e) { e.printStackTrace(); } try { new Test2(); } catch (Exception e) { e.printStackTrace(); } try { new Test3(); } catch (Exception e) { e.printStackTrace(); } } static class Test { Object obj = getObject(); Object getObject() { throw new RuntimeException("getObject"); } } static class Test2 { Test2() { throw new RuntimeException("constructor"); } } static class Test3 { Object obj1 = null; String str = obj1.toString(); } } 

生产:

 java.lang.RuntimeException: getObject at Main$Test.getObject(Main.java:24) at Main$Test.(Main.java:22) at Main.main(Main.java:9) java.lang.RuntimeException: constructor at Main$Test2.(Main.java:31) at Main.main(Main.java:12) java.lang.NullPointerException at Main$Test3.(Main.java:38) at Main.main(Main.java:15) 

< init >

叫做

实例初始化方法

这是由您的java编译器从您定义的构造函数创建的。 虽然它不是有效的方法定义,但是您的JVM期望这样,并且您在构造函数中放置的任何内容都将在方法中执行。 因此,当您使用from时出现exception时,可以确定它来自执行的java类的构造函数。 在Bill Venner关于对象初始化的设计技术文章中阅读更多相关信息。