IndexOutOfBoundsException
| 日本語 | 範囲外例外 |
| 英語 | index out of bounds exception |
| ふりがな | いんでっくすあうとおぶばうんずえくせぷしょん |
| フリガナ | インデックスアウトオブバウンズエクセプション |
J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.lang.IndexOutOfBoundsException。
例外の一種。ArrayListにアクセスする際に、インデックスナンバーが要素数より大きい場合やマイナスの場合に投げられる。また、ArrayIndexOutOfBoundsExceptionのスーパークラスでもある。
RuntimeExceptionクラスのサブクラスであるため、明示的にcatchやthrows指定する必要はない。むしろ、適切なインデックスナンバーを使用していれば決して発生しない例外であり、絶対に発生しないようにしなければならない。決してforループから抜けるために使用してはならない。
例外の一種。ArrayListにアクセスする際に、インデックスナンバーが要素数より大きい場合やマイナスの場合に投げられる。また、ArrayIndexOutOfBoundsExceptionのスーパークラスでもある。
RuntimeExceptionクラスのサブクラスであるため、明示的にcatchやthrows指定する必要はない。むしろ、適切なインデックスナンバーを使用していれば決して発生しない例外であり、絶対に発生しないようにしなければならない。決してforループから抜けるために使用してはならない。
// 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)
}
}
}
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)
}
}
}




