Introdução
Ao estudar sobre java você pode ter se deparado com o conceito de Exception (exceção) e Error (erro). Mas, qual a diferença entre eles?
As duas classes, Error e Exception, são subclasses da Throwable
. Isso permite que elas sejam lançadas com throw
para mudar o fluxo da aplicação.
Mas o uso dessas duas classes são diferentes
Error
A classe, e as subclasses, de Error
representam erros do ambiente de execução JVM. Esses tipos de erros não devem ser tratados pelo programador e sim pelos programadores da JVM.
Algumas classes que herdam de Error
são:
-
VirtualMachineError
-> Erro na JVM -
StackOverflowError
-> Erro de estouro de pilha -
OutOfMemoryError
-> Erro de falta de memoria para alocar um objeto
Exception
As exceções são um tipo de erro diferente, elas são fluxos alternativos do seu programa. O programador pode e deve lidar com elas ao desenvolver um software.
Fluxos de falha, que são diferentes de erro, são representados pelas exceções. Por exemplo, ao ler um arquivo há dois fluxos possíveis: O arquivo existe e é possível ler (caso de sucesso) ou o arquivo pode não existir (caso de falha). Isso não é um erro é um fluxo de falha e nesses casos ocorre de uma exceção IOException
ser lançada.
Programadores devem lidar com os casos de falha capturando as exceções com um bloco try/catch
ou try/catch/finally
.
Algumas classes que herdam de Exception
são:
-
IOException
-> exceção ao lidar com arquivos -
RuntimeException
-> exceção que ocorre no momento de execução -
NumberFormatException
-> exceção ao converter string que não são números
Top comments (0)