Pergunta

Como evitar as exceções java.lang.NullPointerException e java.lang.OutOfBoundException quando utilizo vetores (arrays)?

Resposta

Existem várias razões para que isto ocorra, mas as mais frequentes são:

  1. Foi indexada uma posição além dos limites do array. Por exemplo, se um array foi declarado com 15 posições e por alguma razão está sendo usada a posição 15 ou outra maior ocorre tal erro pois só existem as posições 0 até 15. Arrays em Java são iniciados em zero (zero-based).
public class Teste1 {
  public static void main(String args[]) {
    int array[] = new int[5]; // o array foi inicializado
    int aux = array[6];       // mas foi utilizada uma posição
                              // além das 5 existentes (0..4)!
  }
}
  1. O array não foi inicializado corretamente. Um exemplo de inicialização incorreta:
public class Teste2 {
  public static void main(String args[]) {
    String array[] = new String[5]; // o array foi inicializado
    array[0].charAt(0);             // mas *não* o objeto correspondente
                                    // a posição utilizada!
  }
}