JavaA2Z

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

RuntimeException

日本語 実行時例外
英語 runtime exception
ふりがな らんたいむえくせぷしょん
フリガナ ランタイムエクセプション

解説

J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名java.lang.RuntimeException。
例外の一種。多くの例外スーパークラスでもあり、基本的にこの例外を直接使用することはない。
 
他の例外と大きく異なる性質を持っており、J2SEの仕様上、RuntimeExceptionクラス及びそのサブクラスは「catchthrows指定の必要がない」という特権が与えられている。
通常の例外は、catchするかthrows指定してメソッドの外で処理してもらう、といった例外処理が必要であり、そうしなければコンパイルエラーとなる。だが、RuntimeExceptionクラス及びそのサブクラスは、その必要がない特殊な例外である。
 
RuntimeExceptionクラスサブクラスにはNullPointerExceptionクラスClassCastExceptionクラスといった、通常throwthrowsでは投げられない、どこででも発生しうる例外が含まれている。
RuntimeExceptionクラスにこの特権が与えられている理由は、この例外がどこででも発生しうるものであり、その全箇所で例外処理うのは現実的ではなく、また、プログラムのロジック上「その例外は発生しない」ことが完全に証明できていれば例外処理の必要がないためである。
逆に言うと、もしRuntimeExceptionクラスサブクラスとして例外クラス宣言する場合には、上記の条件を満たしている必要がある。条件によっては例外が発生する可能性がある場合や、明示的例外を処理すべき場面ではRuntimeExceptionクラスサブクラスではなくExceptionクラスサブクラスとして例外宣言すべきである。決して「例外処理めんどくせー」という理由でRuntimeExceptionクラスサブクラスにしてはならない。

参考サイト


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

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

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // RuntimeExceptionを投げます。
            throw new RuntimeException();
        }
        catch( RuntimeException e )
        {
            // 投げられたRuntimeExceptionを拾いました。
            e.printStackTrace();
            // java.lang.RuntimeException
            //     at Sample.main(Sample.java:9)
        }

        // RuntimeExceptionはcatchしなくても
        // コンパイルエラーになりません。
        throw new RuntimeException();
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // RuntimeExceptionを投げます。
            throw new RuntimeException();
        }
        catch( RuntimeException e )
        {
            // 投げられたRuntimeExceptionを拾いました。
            e.printStackTrace();
            // java.lang.RuntimeException
            //     at Sample.main(Sample.java:9)
        }

        // RuntimeExceptionはcatchしなくても
        // コンパイルエラーになりません。
        throw new RuntimeException();
    }
}

この単語を含むページ

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

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

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