PROBLEMA: Erro: java.lang.ArrayIndexOutOfBoundsException

Traduções deste artigo Traduções deste artigo
ID do artigo: 173788 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Tentativa de executar um aplicativo Java sem passagem de linha de comando ou argumentos do programa, como seu aplicativo Java espera, resulta no seguinte erro:
Erro: java.lang.ArrayIndexOutOfBoundsException

Causa

Isso ocorre porque quando o programa Java acessa o grupo "args" para os argumentos de linha de comando ou programa, ele tenta obter itens da matriz está fora das matrizes limites (o índice usado é maior do que o número de itens da matriz - 1).

Resolução

Para corrigir esse problema, você precisa passar argumentos de linha de comando ou argumentos do programa ao executar o programa Java que espera-los. A seção mais informações abaixo mostra como especificar argumentos de programa sob o IDE.

Você também pode colocar um bloco try-catch em torno do código que acessa os argumentos do programa. Este código deve capturar um ArrayIndexOutOfBoundsException.

Situação

Esse comportamento é por design.

Mais Informações

Ao executar o programa Java em IDE que espera de linha de comando ou argumentos do programa, você pode selecione configurações no menu Project, clique na guia Debug e selecione a categoria: programa argumentos para definir os argumentos do programa. Se você estiver usando Visual J ++ 1.0, em seguida, você pode selecione configurações no menu Build, clique na guia Debug e selecione a categoria: programa argumentos para definir os argumentos do programa.

Etapas para reproduzir o problema

  1. Crie um projeto de Java e incluir o seguinte trecho de código.
  2. O trecho de código a seguir foi extraído "Learn Now Java":
          import java.io.*;
    
          class App1_2
          {
             public static void main(String args[])
             {
    
          // uncomment the next line to make the program catch the exception:
          //  try {
                 int nMonth = Integer.parseInt(args[0]);
              int nDay   = Integer.parseInt(args[1]);
              int nYear  = Integer.parseInt(args[2]);
    
              int nDayInYear = 0;
    
              for (int nM = 0; nM < nMonth; nM++)
              {
               switch(nM)
               {
    
               case 4: case 6: case 9: case 11:
                  nDayInYear +=30;
                  break;
    
               case 2:
                  nDayInYear +=28;
    
                  if (((nYear % 4) == 0) && ((nYear % 100) != 0))
                  {
                   nDayInYear++;
                  }
                  break;
    
                  default:
                  nDayInYear += 31;
               }
              }
    
              nDayInYear += nDay;
    
              System.out.print (nMonth + "-" + nDay + "-" + nYear);
              System.out.println (" is day number "
                      + nDayInYear
                      + " in the year");
             }
    
          // uncomment this section to make the program catch the exception:
          // } catch (ArrayIndexOutOfBoundsException e) {
          //   System.out.println("This program takes 3 parameters: ");
          //   System.out.println("  month day year.");
          // }
    
          }
    					
  3. Criar o projeto e execução-lo em IDE.
  4. O erro ArrayIndexOutofBoundsException aparece.

Referências

Para artigos da Base de dados de Conhecimento mais recentes e outras informações de suporte sobre Visual J ++ e SDK para Java, consulte a seguinte página no site do suporte técnico da Microsoft:
http://www.microsoft.com/mscorp/java/

Propriedades

ID do artigo: 173788 - Última revisão: quinta-feira, 25 de agosto de 2005 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Visual J++ 1.0 Standard Edition
  • Microsoft Visual J++ 1.1 Standard Edition
Palavras-chave: 
kbmt kbarttypeinf kberrmsg kbprb KB173788 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 173788

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com