JavaA2Z

KAB-studio > プログラミング > JavaA2Z > ExceptionInInitializerErrorとは

ExceptionInInitializerError

日本語 初期化時例外異常
英語 exception in initializer error
ふりがな えくせぷしょんいんいにしゃらいざーえらー
フリガナ エクセプションインイニシャライザーエラー

解説

J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名java.lang.ExceptionInInitializerError。
static初期化子内で例外が投げられた場合に投げられるErrorクラスサブクラスのため厳密には例外ではない。
 
static初期化子は「クラスを使用した時」に呼ばれる特殊なメソッドである。「クラスを使用した時」とは「インスタンスを作成した時」よりも前であり、使用する側から「呼び出すメソッドではない。
そのため、基本的にstatic初期化子で発生した例外catch拾うことができず、そのためこのような形で投げられる

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // NormalClassクラスを使います。
            // (インスタンスを作る必要はありません)
            String name = NormalClass.class.getName();
        }
        catch( ExceptionInInitializerError e )
        {
            e.printStackTrace();
            // java.lang.ExceptionInInitializerError
            //     at java.lang.Class.forName0(Native Method)
            //     at java.lang.Class.forName(Class.java:140)
            //     at Sample.main(Sample.java:10)
            // Caused by: java.lang.NullPointerException
            //     at NormalClass.<clinit>(Sample.java:35)
            //     ... 3 more

            // このように、staticメソッド内で例外が投げられると
            // ExceptionInInitializerError例外が発生します。
        }
    }
}

/**
*   普通のクラス。
*/
class NormalClass
{
    /**
    *   static初期化子。
    */
    static
    {
        // NullPointerException例外を投げさせます。
        Integer integer = null;
        integer.toString();
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // NormalClassクラスを使います。
            // (インスタンスを作る必要はありません)
            String name = NormalClass.class.getName();
        }
        catch( ExceptionInInitializerError e )
        {
            e.printStackTrace();
            // java.lang.ExceptionInInitializerError
            //     at java.lang.Class.forName0(Native Method)
            //     at java.lang.Class.forName(Class.java:140)
            //     at Sample.main(Sample.java:10)
            // Caused by: java.lang.NullPointerException
            //     at NormalClass.<clinit>(Sample.java:35)
            //     ... 3 more

            // このように、staticメソッド内で例外が投げられると
            // ExceptionInInitializerError例外が発生します。
        }
    }
}

/**
*   普通のクラス。
*/
class NormalClass
{
    /**
    *   static初期化子。
    */
    static
    {
        // NullPointerException例外を投げさせます。
        Integer integer = null;
        integer.toString();
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/07/14
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。