Java Programming: Quando ocorrem erros

Erros em aplicações Java pode ocorrer em vários momentos. No entanto, você pode amplamente classificar quando um erro ocorre em duas categorias, em tempo de compilação e tempo de execução, conforme descrito nas seções a seguir.

Compilar erros de tempo

O compilador converte o código do aplicativo em código Java byte. Durante este processo, que leva o código legível que você escreve e converte-lo em algo que o Java Runtime Environment (JRE) entende.

Para realizar este processo, o compilador deve analisar o código, o que significa que lê o código de uma maneira que de forma inequívoca determina exatamente o que você deseja que o aplicativo para fazer, quando quiser fazê-lo, e como você deseja que a tarefa cumprida. Se você quebrar as regras para escrever código inequívoca, o compilador exibe uma mensagem de erro. Esta mensagem é realmente um tipo de exceção.

Análise significa para ler a entrada que você fornecer, tais como o código de forma legível, e transformá-lo em algo mais, tais como o código Java byte. Um aplicativo também pode analisar a entrada do usuário. Por exemplo, um usuário pode digitar uma string que o código do aplicativo se transforma em um número.

Assim, a análise é o ato de ler algum tipo de entrada, interpretando que a entrada de uma maneira específica, e, em seguida, produzir a saída com base na entrada interpretado. Um analisador gera um erro quando a entrada não é o que se espera.

Por exemplo, se o usuário insere uma string contendo a letra C, e você espera uma string contendo um número, como 123, o analisador irá gerar uma exceção dizendo que a entrada está incorreta.

Tempo de compilação erros são os mais fáceis de manusear porque o compilador normalmente diz-lhe precisamente o que está errado e onde o erro ocorreu. Mesmo se a informação não é exacta, o compilador irá, pelo menos, levá-lo para a área direita do código quebrado para que você pode olhar para o erro que ele contém.

Para garantir que todos entendam exatamente como a linguagem Java é suposto para trabalhar, os desenvolvedores a criar uma especificação para ele. Esta especificação inclui os elementos de linguagem em uma linguagem especial chamada Backus-Naur Form (BNF). Usando BNF é um método extremamente preciso de descrever uma língua de modo que não há qualquer risco de má interpretação por qualquer pessoa.

Você pode ver uma amostra da BNF para a linguagem Java no Departamento de Ciência da Computação - Daimi. Não se preocupe muito com ser capaz de ler esta especificação. A maioria dos desenvolvedores nunca aprendem a interpretar a BNF para os idiomas que eles usam - que é o domínio de desenvolvedores do compilador.

erros de execução

O compilador Java não é possível encontrar todos os erros em seu código. Se a forma do código está correto (isto é, você não fez quaisquer erros na digitação dos elementos que criam a aplicação), o compilador não vai encontrar o erro.

Por exemplo, se você inicializar um valor numérico a 5 em vez de 4, o compilador não consegue encontrar o erro para você, porque o compilador não tem idéia de que você realmente queria dizer para digitar 4. Esses tipos de erros criar erros de execução - esses erros que acontecem em algum momento durante a execução da aplicação.

erros de execução pode ocorrer em todos os tipos de vezes. Alguns erros são mais prováveis ​​de ocorrer em momentos específicos. A lista a seguir fornece-lhe algumas ideias sobre quando erros de execução são susceptíveis de ocorrer:

  • inicialização: Quando o aplicativo é iniciado em primeiro lugar - antes de apresentar qualquer tipo de interface para o usuário ou realiza qualquer trabalho útil - ele passa por uma fase de inicialização. Isto é, quando definir uma variável para o tipo incorreto ou tentar usar uma variável antes de inicializar ele vai ser notado. Muitos erros relacionados com os recursos também podem ocorrer durante a inicialização porque a maioria dos aplicativos abertos necessários recursos durante este tempo.

  • Modo operacional: Depois que um aplicativo é inicializado, ele está em modo de operação. Se ele tem uma interface de usuário, ele começa a interagir com o usuário. Este é o momento em que a entrada do usuário mais importa.

    Você também vai encontrar variáveis ​​inicializados incorretamente neste momento porque o usuário (ou o destinatário da saída do aplicativo, tais como o sistema) vai ver que a saída é incorreta. As solicitações de usuários para recursos, como um arquivo de dados, também criar erros durante este tempo.

  • processamento em segundo plano: A maioria dos erros de processamento de fundo resultam do ambiente (como a perda de uma conexão de rede), recursos (como um arquivo perdido), variáveis ​​inicializados incorretamente, ou erros de falta na forma como você disse o aplicativo para executar uma tarefa. Algumas tarefas são mais comumente realizadas em segundo plano do que outras.

    Por exemplo, a impressão de um documento ou fazer o download dos recursos da Internet são comumente realizados em segundo plano, enquanto o usuário continua a trabalhar com a aplicação em primeiro plano.

  • Desligar: Quando o usuário (incluindo as contas do sistema) informa o aplicativo que não é mais necessário, a aplicação passa por uma fase de encerramento. Durante esta fase de desligamento, o aplicativo fecha arquivos e executa outras tarefas domésticas que garantem a aplicação não deixa uma confusão para o sistema operacional.

    Os erros mais comuns que podem ocorrer durante esta fase não estão liberando recursos que a sua aplicação tem usado e não salvar os dados no disco. É claro, os erros de codificação pode ocorrer a qualquer momento, e esta fase da operação não é excepção. Você poderia dizer que o aplicativo para fechar cinco arquivos quando apenas quatro deles são realmente aberto.

O JRE apresentará a maioria dos erros de execução detectados para você como exceções. No entanto, o JRE não vai pegar todos os erros na sua aplicação. Você também deve olhar para a saída do seu aplicativo para determinar se a saída coincide com as expectativas que você tem para uma determinada entrada.

Além disso, é importante olhar para o estado de todos os recursos que você usa para garantir que eles não estão danificados de alguma forma. Por exemplo, você precisa garantir que todos os dados que deve salvar em um arquivo, na verdade, acaba no arquivo quando o aplicativo é desligado.

Java 8 tem uma maior ênfase na segurança, o que significa que você vai ver mais instâncias SecurityException como você trabalha com sua aplicação.

Vendo um aumento de exceções de segurança não significa que seu código está com defeito ou que o Java 8 está cheio de erros - isso significa que o Java 8 localiza e informa sobre problemas que poderiam causar problemas de segurança, como as pessoas usam o aplicativo automaticamente.

A documentação SecurityException aparece no Java.net. Claro, você vai querer saber o que todo o burburinho é sobre.

menu