Os erros são uma desgraça para usuários e programadores. Obviamente, os desenvolvedores não querem que seus programas caiam a cada passo e os usuários agora estão tão acostumados a ter erros programas que eles aceitam de má vontade pagar o preço do software que quase certamente terá pelo menos um erro isto. Java foi desenvolvido para oferecer ao programador uma chance esportiva ao projetar um aplicativo sem erros. Há exceções que o programador saberá que são possíveis quando um aplicativo interage com um recurso ou usuário e essas exceções podem ser tratadas. Infelizmente, há exceções que o programador não pode controlar ou simplesmente ignora. Em resumo, todas as exceções não são criadas da mesma forma e, portanto, existem vários tipos para um programador pensar.
Uma exceção é um evento que faz com que o programa não possa fluir na execução pretendida. Existem três tipos de exceção - a exceção verificada, o erro e a exceção de tempo de execução.
A exceção verificada
Exceções verificadas são exceções com as quais um aplicativo Java deve ser capaz de lidar. Por exemplo, se um aplicativo lê dados de um arquivo, deve poder manipular o
FileNotFoundException
. Afinal, não há garantia de que o arquivo esperado esteja onde deveria estar. Tudo pode acontecer no sistema de arquivos, sobre o qual um aplicativo não tem idéia.Para levar esse exemplo um passo adiante. Digamos que estamos usando o FileReader
classe para ler um arquivo de caracteres. Se você der uma olhada no Definição do construtor FileReader na API Java você verá sua assinatura de método:
public FileReader (String fileName) lança FileNotFoundException.
Como você pode ver, o construtor afirma especificamente que o FileReader
construtor pode lançar um FileNotFoundException
. Isso faz sentido, pois é altamente provável que o nome do arquivo
A string estará errada de tempos em tempos. Veja o seguinte código:
public static void main (String [] args) { FileReader fileInput = nulo; // Abra o arquivo de entrada. fileInput = new FileReader ("Untitled.txt"); }
Sintaticamente, as instruções estão corretas, mas esse código nunca será compilado. O compilador conhece o FileReader
construtor pode lançar um FileNotFoundException
e cabe ao código de chamada lidar com essa exceção. Existem duas opções - primeiro podemos passar a exceção do nosso método especificando um joga
cláusula também:
public static void main (String [] args) lança FileNotFoundException { FileReader fileInput = nulo; // Abra o arquivo de entrada. fileInput = new FileReader ("Untitled.txt"); }
Ou podemos realmente lidar com a exceção:
public static void main (String [] args) { FileReader fileInput = nulo; experimentar. { // Abra o arquivo de entrada. fileInput = new FileReader ("Untitled.txt"); } catch (FileNotFoundException ex) { // diz ao usuário para encontrar o arquivo. } }
Aplicativos Java bem escritos devem ser capazes de lidar com exceções verificadas.
Erros
O segundo tipo de exceção é conhecido como erro. Quando ocorre uma exceção, o JVM criará um objeto de exceção. Todos esses objetos derivam do Jogável
classe. o Jogável
classe tem duas subclasses principais - Erro
e Exceção
. o Erro
A classe denota uma exceção que um aplicativo provavelmente não poderá lidar.
Essas exceções são consideradas raras. Por exemplo, a JVM pode ficar sem recursos devido ao hardware não conseguir lidar com todos os processos com os quais está tendo que lidar. É possível que o aplicativo detecte o erro para notificar o usuário, mas normalmente o aplicativo precisará ser fechado até que o problema subjacente seja resolvido.
Exceções de tempo de execução
UMA Exceção de tempo de execução ocorre simplesmente porque o programador cometeu um erro. Você escreveu o código, tudo fica bem para o compilador e, quando você executa o código, ele cai porque tentou acessar um elemento de uma matriz que não existe ou um erro lógico fez com que um método fosse chamado com um valor nulo valor. Ou qualquer número de erros que um programador possa cometer. Mas tudo bem, identificamos essas exceções em testes exaustivos, certo?
Erros e exceções de tempo de execução se enquadram na categoria de exceções não verificadas.