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) } } }