IndexOutOfBoundsException
A exceção IndexOutOfBoundsException é obtida quando você tenta acessar uma posição de um Array, List, Collection, ou qualquer outro tipo da família, que não existe. Lembre-se de que os índices em Java começam em 0 e vão até a quantidade de elementos menos 1. Por exemplo, temos uma lista com 4 elementos, iniciando na posição zero e tentamos acessar a posição 4.
List<Coisas> lista = new ArrayList<Coisas>();
lista.add(new Coisa("cachorro"));
lista.add(new Coisa("gato"));
lista.add(new Coisa("sapato"));
lista.add(new Coisa("livro"));
Coisa coisinha = lista.get(4);
System.out.println("Tipo da coisinha: "+coisinha.getTipo());
Ao executar o código acima, temos a exceção
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 4
Como a lista por default inicia-se em [0] zero!, para acessar o tipo livro devemos
Coisa coisinha = lista.get(3);
Isso pode parecer bobagem… Mas no meio de um projeto gigante pode dar muita dor de cabeça…
Para array, a exceção lançada é ArrayIndexOutOfBoundsException. Para String a exceção é StringIndexOutOfBoundsException e no caso do ArrayList tem-se IndexOutOfBoundsException. Essas excessões são bem parecidas, leia um pouco mais sobre isso no artigo abaixo.
Entenda a exceção IndexOutOfBoundsException
Leave a Reply