StringIndexOutOfBoundsException対策
StringIndexOutOfBoundsExceptionは、文字列に対して
文字位置を指定する操作を実行したときに、発生する可能性があります。
より具体的には、配列の場合と同様に、負の数、あるいは(文字列の長さ - 1)よりも
大きな数にて位置を指定した場合に発生します。
samples/exception/index/StringIndexOutOfBoundsExceptionTest.java - Eclipse SDK
|
package samples.exception.index;
public class StringIndexOutOfBoundsExceptionTest {
public static void main(String[] args) {
try {
String s = "java";
System.out.println(s.charAt(4));
} catch (Exception e) {
e.printStackTrace();
}
}
}
|
|
上記の例では、文字列変数 s に 「Java」 という4文字からなる文字列を設定しています。
そして、charAt メソッドにて、位置を指定して、その位置の一文字を取得しようとしています。
文字位置は0から数え始めますので、この場合は0, 1, 2, 3 のいずれかならば
問題ないのですが、ここでは、わざと、存在しない 4番目にアクセスしようとしていますので、
例外が発生します。
コマンド プロンプト
|
C:\JavaMaster\bin>java -cp . samples.exception.index.StringIndexOutOfBoundsExceptionTest
java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.charAt(Unknown Source)
at samples.exception.index.StringIndexOutOfBoundsExceptionTest.main(StringIndexOutOfBoundsExceptionTest.java:7)
|
|