em Java, existem dois tipos de excepções:
1) assinalados: são as excepções que estão assinaladas na hora de compilação. Se algum código dentro de um método lançar uma exceção assinalada, então o método deve lidar com a exceção ou ele deve especificar a exceção usando palavras-chave lances.
por exemplo, considere o seguinte programa Java que abre o arquivo no local “C:\test\a.txt” e imprime as três primeiras linhas., O programa não compila, porque a função main() usa o FileReader() e FileReader() lança uma exceção checada FileNotFoundException. Ele também usa o readLine() e close() métodos, e estes métodos também jogar verificada a exceção IOException
Saída:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown at Main.main(Main.java:5)
Para corrigir o programa acima, temos de especificar lista de exceções usando lança, ou precisamos usar o bloco try-catch. Nós usamos lances no programa abaixo., Uma vez que FileNotFoundException é uma subclasse de IOException, podemos apenas especificar IOException na lista de lances e fazer o compilador de programa acima-livre de erro.
Saída: três Primeiras linhas do arquivo “C:\test\a.txt”
2) Desmarcada são as exceções não verificadas no compilado de tempo. Em C++, todas as exceções estão desligadas, por isso não é forçado pelo compilador a lidar ou especificar a exceção. Cabe aos programadores ser civilizados, e especificar ou pegar as exceções.,
nas exceções Java sob erro e classes RuntimeException são exceções não verificadas, tudo o resto Sob throwable é checado.
+-----------+ | Throwable | +-----------+ / \ / \ +-------+ +-----------+ | Error | | Exception | +-------+ +-----------+ / | \ / | \ \________/ \______/ \ +------------------+ unchecked checked | RuntimeException | +------------------+ / | | \ \_________________/ unchecked
considere o seguinte programa Java. Compila bem, mas lança uma noção aritmética quando corre. O compilador permite-lhe compilar, porque a aritmética é uma excepção não verificada.,2b7cfd03″>
;
int
y =
10
;
int
z = y/x;
}
}
Output:
Exception in thread "main" java.lang.ArithmeticException: / by zero at Main.main(Main.java:5)Java Result: 1
Why two types?,
See Unchecked Exceptions — The Controversy for details.devemos fazer com que as nossas excepções sejam verificadas ou não?
Following is the bottom line from Java documents
If a client can reasonably be expected to recover from an exception, make it a checked exception. Se um cliente não pode fazer nada para recuperar a exceção, fazem dele uma exceção não verificada
Java Canto GeeksforGeeks
por Favor, escreva comentários se você encontrar algo incorreto, ou você deseja compartilhar mais informações sobre o tópico discutido acima.Leitor de atenção! Não pares de aprender agora., Obtenha todos os conceitos importantes da Fundação Java e Coleções com os fundamentos do curso de Coleções Java e Java a um preço amigável para os estudantes e se torne a indústria pronta.