<init>在Java异常中表示什么?
2022-09-02 21:03:14
在 Java 异常中意味着什么?<init>
例如:
BlahBlahException...
at java.io.FileInputStream.<init>(FileInputStream.java:20)
在 Java 异常中意味着什么?<init>
例如:
BlahBlahException...
at java.io.FileInputStream.<init>(FileInputStream.java:20)
在对象的构造中引发异常,有两个选项:
看看我写的这个演示: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.<init>(Main.java:22)
at Main.main(Main.java:9)
java.lang.RuntimeException: constructor
at Main$Test2.<init>(Main.java:31)
at Main.main(Main.java:12)
java.lang.NullPointerException
at Main$Test3.<init>(Main.java:38)
at Main.main(Main.java:15)
<初始化>
称为
实例初始化方法
它是由 Java 编译器从您定义的构造函数创建的。虽然它不是有效的方法定义,但您的JVM期望这个,并且您放入构造函数中的任何内容都将在方法中执行。因此,当您使用 from 的异常时,您可以确定它来自已执行的 java 类的构造函数。在 Bill venner 关于对象初始化的设计技术文章中阅读更多相关信息。