Welcome to Our Website

Excepções assinaladas e não verificadas em java com exemplos

Existem dois tipos de excepções: a excepção assinalada e a excepção não assinalada. Neste guia, vamos discuti-los. A principal diferença entre a excepção assinalada e não assinalada é que as excepções assinaladas são assinaladas à hora de compilação, enquanto as excepções não verificadas são assinaladas à hora de execução.

quais são as excepções verificadas?

as excepções verificadas são verificadas na altura da compilação., Significa que se um método está lançando uma exceção verificada, então ele deve lidar com a exceção usando bloco de try-catch ou ele deve declarar a exceção usando a palavra-chave lances, caso contrário o programa irá dar um erro de compilação.

permite compreender isto com a ajuda de um exemplo:

assinalado exemplo de excepção

neste exemplo estamos a ler o ficheiro myfile.txt e a mostrar o seu conteúdo no ecrã. Neste programa há três lugares onde uma exceção verificada é lançada como mencionado nos comentários abaixo., FileInputStream que é usado para especificar a localização e o nome do arquivo, lança FileNotFoundException. O método read() que lê o conteúdo de arquivos lança IOException e o método close() que fecha o fluxo de entrada de arquivos também joga IOException.

Saída:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: Unhandled exception type FileNotFoundExceptionUnhandled exception type IOExceptionUnhandled exception type IOException

Por este erro de compilação? Como mencionei no início, as exceções verificadas são verificadas durante o tempo de compilação. Como não lidamos / declaramos as exceções, nosso programa deu o erro de compilação.como resolver o erro?, Há duas maneiras de evitar este erro. Veremos os dois caminhos um a um.

Método 1: declarar a excepção usando a palavra-chave do arremesso.
Como sabemos que todas as três ocorrências de exceções verificadas estão dentro do método main (), então uma maneira de evitar o erro de compilação é: declarar a exceção no método usando a palavra-chave de lances. Você pode estar pensando que o nosso código está lançando FileNotFoundException e IOException ambos então por que estamos declarando a IOException sozinho. A razão é que IOException é uma classe-mãe de FileNotFoundException de modo que por padrão cobre isso., Se quiser, pode declará-las assim: public static void main(String args) throws IOException, FileNotFoundException.

saída:
O conteúdo do arquivo é mostrado na tela.Método 2: manuseá-los utilizando blocos de tração.
a abordagem que temos usado acima não é nada boa. Não é a melhor prática de tratamento de exceções. Você deve dar uma mensagem significativa para cada tipo de exceção para que seja fácil para alguém entender o erro. O código deve ser assim:

Este código irá correr bem e irá mostrar o conteúdo do arquivo.,

Aqui estão alguns outros Verificado Exceções –

  • SQLException
  • IOException
  • ClassNotFoundException
  • InvocationTargetException

o Que são exceções não verificadas?

as excepções não verificadas não são verificadas na hora de compilação. Significa que se o seu programa está a lançar uma excepção não verificada e mesmo que não tenha tratado/declarado essa excepção, o programa não irá dar um erro de compilação. A maioria das vezes esta exceção ocorre devido aos dados ruins fornecidos pelo usuário durante a interação Usuário-programa., Cabe ao programador julgar antecipadamente as condições, que podem causar tais exceções e lidar com elas adequadamente. Todas as exceções não verificadas são sub-classes diretas da classe RuntimeException.

permite compreender isto com um exemplo:

exemplo de excepção não assinalado

Se compilar este código, ele irá compilar com sucesso, contudo, quando o executar, irá lançar ArithmeticException. Isso mostra claramente que exceções não verificadas não são verificadas no tempo de compilação, elas ocorrem no tempo de execução. Vejamos outro exemplo.,

Este código também compilaria com sucesso, uma vez que ArrayIndexOutOfBoundsException também é uma excepção não verificada.nota :isso não significa que o compilador não esteja verificando essas exceções, então não devemos lidar com elas. Na verdade, devíamos tratá-los com mais cuidado. Por exemplo, no exemplo acima deve haver uma mensagem de exceção para o usuário que eles estão tentando exibir um valor que não existe em array de modo que o usuário seria capaz de corrigir o problema.,

Output:

The specified index does not exist in array. Please correct the error.

Here are the few unchecked exception classes:

  • NullPointerException
  • ArrayIndexOutOfBoundsException
  • ArithmeticException
  • IllegalArgumentException
  • NumberFormatException

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *