neste exceções Java tutorial, para saber o que uma exceção é em Java, o que é uma exceção verificada e como ele é diferente de uma exceção não verificada. Também vamos aprender algumas boas práticas em torno de Java checked exceções.
Table of Contents1. What is an exception in Java?2. Checked vs unchecked exceptions in Java3. Java exception handling best practices
o que é uma exceção em Java?
“, Uma exceção é um evento inesperado que ocorre durante a execução de um programa que interrompe o fluxo normal de instruções.,”
em Java, todos os erros e exceções são representados com classe Throwable. Quando um erro ocorre dentro de um método, o método cria um objeto (de qualquer subtipo de Throwable
) e o entrega ao sistema de tempo de execução. O objeto, chamado de objeto de exceção.
O objeto de exceção contém informações sobre o erro, incluindo seu tipo e o estado do programa quando o erro ocorreu. Criar um objeto de exceção e entregá-lo ao sistema de tempo de execução é chamado de lançar uma exceção.
1, 1., Tratamento de exceção
temos duas opções quando um objeto de exceção é criado em nossa aplicação.
- ou vamos lidar com ele dentro do método
- ou podemos passá-lo para o método de chamador para deixá-lo lidar.esta é uma decisão muito importante a ser tomada ao definir as responsabilidades de um método. Um método deve indicar claramente quais os cenários excepcionais que irá enfrentar e quais não. É definido na sintaxe do método usando a cláusula de lances.para lidar com a excepção, temos de apanhar a excepção na secção de capturas do bloco de ensaio.,
If an exception is not handled in the application, then it will propagate to JVM and JVM will usually terminate the program itself.
Checked vs unchecked exceptions in Java
2.1. Exception Hierarchy
In Java, exceptions are broadly categorized into two sections: checked exceptions and unchecked exceptions.
2.2. Checked Exceptions
Java forces you to handle these error scenarios in some manner in your application code., Eles virão imediatamente à tua cara, assim que começares a compilar o teu programa. Podes ignorá-los e deixá-los passar para a JVM, mas é um mau hábito. Idealmente, você deve lidar com essas exceções a um nível adequado dentro de sua aplicação para que você possa informar o usuário sobre falhas e pedir-lhe para repetir/ vir mais tarde.
geralmente, as exceções verificadas denotam cenários de erro que estão fora do controle imediato do programa. Eles ocorrem geralmente interagindo com recursos externos/recursos de rede, por exemplo, problemas de banco de dados, Erros de conexão de rede, arquivos em falta, etc.,
Checked exceptions are subclasses of Exception class.
Example of checked exceptions are : ClassNotFoundException, IOException, SQLException and so on.
Checked Exception Example
FileNotFoundException
is a checked exception in Java. Anytime, we want to read a file from filesystem, Java forces us to handle error situation where file may not be present in place.public static void main(String args) { FileReader file = new FileReader("somefile.txt");}
In above case, you will get compile time error with message –
Unhandled exception type FileNotFoundException
.,para tornar o programa capaz de compilar, você deve lidar com esta situação de erro em
try-catch
bloco. Abaixo dado o código irá compilar absolutamente bem.2, 3. Exceções não assinaladas
Java também fornecem exceções não assinaladas, cujas ocorrências não são assinaladas pelo compilador. Eles vão entrar em vida/ocorrer em seu programa, uma vez que qualquer código buggy é executado.
A method is not forced by compiler to declare the unchecked exceptions thrown by its implementation. Geralmente, tais métodos quase sempre não os declaram, também.,
exceções não verificadas são subclasses de percepção de execução. Exemplo de exceções não verificadas são :
ArithmeticException
ArrayStoreException
ClassCastException
e assim por diante.“A coisa estranha é queRuntimeException
é a própria subclasse deException
i.e. todas as classes de exceção não verificada deve ter sido verificada exceções implicitamente, MAS eles não são.”exemplo de excepção não assinalado
assinale o código indicado abaixo. O código acima não indica nenhum erro de tempo de compilação., Mas quando você o exemplo, ele lança
NullPointerException
. A excepção NullPointerException não está assinalada em Java.Lembre-se que a maior diferença entre checked e unchecked exceptions é que verificada exceções são forçados pelo compilador e usado para indicar condições excepcionais que estão fora do controle do programa (por exemplo, erros de I/O), enquanto que exceções não verificadas estão ocorreu durante o tempo de execução e usado para indicar erros de programação (por exemplo, um ponteiro nulo).,
excepção Java manipulação de melhores práticas
- excepções verificadas podem ser usadas quando um método não pode fazer o que o seu nome diz que faz. por exemplo, um método chamado prepareSystem() que pré-povoar arquivos de configuração e fazer alguma configuração usando-os, Pode declarar lançamento
FileNotFoundException
o que implica que o método usa arquivos de configuração do sistema de arquivos.as exceções verificadas idealmente nunca devem ser usadas para erros de programação, mas absolutamente devem ser usadas para erros de recursos e para controle de fluxo em tais casos., - jogue apenas as exceções que um método não pode lidar por qualquer meio. O método deve primeiro tentar lidar com ele assim que ele encontra. Lance a exceção apenas se não for possível lidar com o método interno.
- uma boa maneira de definir assinaturas de métodos é declarar exceções próximas ao nome do método. If your method is named
openFile
, then it is expected to throwFileNotFoundException
?. Se seu método é chamadofindProvider
, então é esperado lançarNoSuchProviderException
.,também, este tipo de exceções deve ser feito check exceções, uma vez que obriga o chamador a lidar com os problemas que são inerentes à semântica de seus métodos.
- regra é se um cliente pode razoavelmente ser esperado para se recuperar de uma exceção, faça-o uma exceção verificada. Se um cliente não puder fazer nada para recuperar da exceção, faça dela uma exceção não controlada.
na realidade, a maioria das aplicações terá que recuperar de praticamente todas as exceções, incluindo
NullPointerException
,IllegalArgumentExceptions
e muitas outras exceções não verificadas., A ação / transação que falhou será abortada, mas a aplicação tem que permanecer viva e estar pronta para servir a próxima ação / transação.a única vez que é normalmente legal desligar uma aplicação é durante a inicialização. Por exemplo, se um arquivo de configuração está faltando e a aplicação não pode fazer nada sensato sem ele, então é legal desligar a aplicação.,
Conclusão
neste post, aprendemos a diferença entre verificado vs exceções não verificadas em Java, juntamente com como lidar com exceções não verificadas, exceção hierarquia em Java, com exemplos.Sinta-se à vontade para deixar as suas perguntas nos comentários.feliz aprendizagem !!,
- Asynchronous and synchronous exceptions
- exception handling using inner classes
- exception handling best practices
- effectively handle NullPointerException
- Custom exceptions in Java
- Java exception doc
Was this post helpful?
Let us know if you liked the post. That’s the only way we can improve.YesNo - excepções verificadas podem ser usadas quando um método não pode fazer o que o seu nome diz que faz. por exemplo, um método chamado prepareSystem() que pré-povoar arquivos de configuração e fazer alguma configuração usando-os, Pode declarar lançamento
Leave a Reply