JavaA2Z

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

IndexOutOfBoundsException

日本語 範囲外例外
英語 index out of bounds exception
ふりがな いんでっくすあうとおぶばうんずえくせぷしょん
フリガナ インデックスアウトオブバウンズエクセプション

解説

J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名java.lang.IndexOutOfBoundsException。
例外の一種。ArrayListにアクセスする際に、インデックスナンバー要素数より大きい場合やマイナスの場合に投げられる。また、ArrayIndexOutOfBoundsExceptionスーパークラスでもある。
RuntimeExceptionクラスサブクラスであるため、明示的catchthrows指定する必要はない。むしろ、適切なインデックスナンバーを使用していれば決して発生しない例外であり、絶対に発生しないようにしなければならない。決してforループから抜けるために使用してはならない。

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

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

// Sample.java
import java.util.ArrayList;

public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // IndexOutOfBoundsExceptionを投げます。
            ArrayList arylst = new ArrayList();
            arylst.add( new Integer( 100 ) );
            System.out.println( arylst.get( 1 ) );
        }
        catch( IndexOutOfBoundsException e )
        {
            // 投げられたIndexOutOfBoundsExceptionを拾いました。
            e.printStackTrace();
            // java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
            //     at java.util.ArrayList.RangeCheck(ArrayList.java:508)
            //     at java.util.ArrayList.get(ArrayList.java:320)
            //     at Sample.main(Sample.java:13)
            // ちなみにこのように「使われたインデックスナンバー」や「要素数」も
            // 出力されます。
        }

        try
        {
            // インデックスナンバーがマイナスでも投げられます。
            ArrayList arylst = new ArrayList();
            arylst.add( new Integer( 100 ) );
            System.out.println( arylst.get( -1 ) );
        }
        catch( IndexOutOfBoundsException e )
        {
            // 投げられたIndexOutOfBoundsExceptionを拾いました。
            e.printStackTrace();
            // java.lang.IndexOutOfBoundsException: Index: -1, Size: 1
            //     at java.util.ArrayList.RangeCheck(ArrayList.java:508)
            //     at java.util.ArrayList.get(ArrayList.java:320)
            //     at Sample.main(Sample.java:30)
        }
    }
}
// Sample.java
import java.util.ArrayList;

public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // IndexOutOfBoundsExceptionを投げます。
            ArrayList arylst = new ArrayList();
            arylst.add( new Integer( 100 ) );
            System.out.println( arylst.get( 1 ) );
        }
        catch( IndexOutOfBoundsException e )
        {
            // 投げられたIndexOutOfBoundsExceptionを拾いました。
            e.printStackTrace();
            // java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
            //     at java.util.ArrayList.RangeCheck(ArrayList.java:508)
            //     at java.util.ArrayList.get(ArrayList.java:320)
            //     at Sample.main(Sample.java:13)
            // ちなみにこのように「使われたインデックスナンバー」や「要素数」も
            // 出力されます。
        }

        try
        {
            // インデックスナンバーがマイナスでも投げられます。
            ArrayList arylst = new ArrayList();
            arylst.add( new Integer( 100 ) );
            System.out.println( arylst.get( -1 ) );
        }
        catch( IndexOutOfBoundsException e )
        {
            // 投げられたIndexOutOfBoundsExceptionを拾いました。
            e.printStackTrace();
            // java.lang.IndexOutOfBoundsException: Index: -1, Size: 1
            //     at java.util.ArrayList.RangeCheck(ArrayList.java:508)
            //     at java.util.ArrayList.get(ArrayList.java:320)
            //     at Sample.main(Sample.java:30)
        }
    }
}

この単語を含むページ

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