Pretty Code Blog

Just another weblog about development

29  07 2008

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.

:helpbook Entenda a exceção IndexOutOfBoundsException


Leave a Reply

CAPTCHA Image

« »