このプログラムでコンパイル エラーが発生することを期待していましたが、正常にコンパイルされ、実行中にランタイム例外が発生しました。
class substr11
{
public static void main(String args[])
{
String s = "abcde";
System.out.println(s.substring(1,-1));
}
}
コンパイラ エラーは解析でき (文字列は本体自体で初期化されます)、この文字列操作によってコンパイル エラーが発生することがわかります。コンパイルエラーがスローされなかった理由を教えてもらえますか?
スレッド「メイン」での例外 java.lang.StringIndexOutOfBoundsException: 文字列インデックスが範囲外です: -2 at java.lang.String.substring(Unknown Source) at substr11.main(substr11.java:9)