在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关于对象初始化的设计技术文章中阅读更多相关信息。