<init>
Java例外で何を意味しますか?
例えば:
BlahBlahException...
at java.io.FileInputStream.<init>(FileInputStream.java:20)
<init>
Java例外で何を意味しますか?
例えば:
BlahBlahException...
at java.io.FileInputStream.<init>(FileInputStream.java:20)
オブジェクトの構築で例外がスローされることには、次の 2 つのオプションがあります。
私が書いたこのデモをチェックしてください: 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クラスのコンストラクターからのものであると確信できます。これについて詳しくは、オブジェクトの初期化に関するBillvennerの設計手法の記事を参照してください。