StringIndexOutOfBoundsException.java revision 363291564f107e500e0b584baa0377757cc2ae09
1/* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18package java.lang; 19 20/** 21 * Thrown when the a string is indexed with a value less than zero, or greater 22 * than or equal to the size of the array. 23 */ 24public class StringIndexOutOfBoundsException extends IndexOutOfBoundsException { 25 26 private static final long serialVersionUID = -6762910422159637258L; 27 28 /** 29 * Constructs a new {@code StringIndexOutOfBoundsException} that includes 30 * the current stack trace. 31 */ 32 public StringIndexOutOfBoundsException() { 33 super(); 34 } 35 36 /** 37 * Constructs a new {@code StringIndexOutOfBoundsException} with the current 38 * stack trace and a detail message that is based on the specified invalid 39 * {@code index}. 40 * 41 * @param index 42 * the index which is out of bounds. 43 */ 44 public StringIndexOutOfBoundsException(int index) { 45 super("String index out of range: " + index); 46 } 47 48 /** 49 * Constructs a new {@code StringIndexOutOfBoundsException} with the current 50 * stack trace and the specified detail message. 51 * 52 * @param detailMessage 53 * the detail message for this exception. 54 */ 55 public StringIndexOutOfBoundsException(String detailMessage) { 56 super(detailMessage); 57 } 58 59 /** 60 * Used internally for consistent high-quality error reporting. 61 * @hide 62 */ 63 public StringIndexOutOfBoundsException(String s, int index) { 64 this(s.length(), index); 65 } 66 67 /** 68 * Used internally for consistent high-quality error reporting. 69 * @hide 70 */ 71 public StringIndexOutOfBoundsException(int sourceLength, int index) { 72 super("length=" + sourceLength + "; index=" + index); 73 } 74 75 /** 76 * Used internally for consistent high-quality error reporting. 77 * @hide 78 */ 79 public StringIndexOutOfBoundsException(String s, int offset, int count) { 80 this(s.length(), offset, count); 81 } 82 83 /** 84 * Used internally for consistent high-quality error reporting. 85 * @hide 86 */ 87 public StringIndexOutOfBoundsException(int sourceLength, int offset, 88 int count) { 89 super("length=" + sourceLength + "; regionStart=" + offset 90 + "; regionLength=" + count); 91 } 92} 93