Gráfico de comparação
Base para Comparação | Erro | Exceção |
---|---|---|
Basic | Um erro é causado devido à falta de recursos do sistema. | Uma exceção é causada por causa do código. |
Recuperação | Um erro é irrecuperável. | Uma exceção é recuperável. |
Palavras-chave | Não há meios de manipular um erro pelo código do programa. | Exceções são tratadas usando três palavras-chave "try", "catch" e "throw". |
Consequências | Quando o erro é detectado, o programa terminará de forma anormal. | Como uma exceção é detectada, ela é lançada e capturada pelas palavras-chave "throw" e "catch" correspondentemente. |
Tipos | Erros são classificados como tipo desmarcado. | As exceções são classificadas como tipo marcado ou desmarcado. |
Pacote | Em Java, os erros são definidos no pacote "java.lang.Error". | Em Java, as exceções são definidas em "java.lang.Exception". |
Exemplo | OutOfMemory, StackOverFlow. | Exceções verificadas: NoSuchMethod, ClassNotFound. Exceções não verificadas: NullPointer, IndexOutOfBounds. |
Definição de Erro
" Erro " é uma subclasse da classe interna "Throwable". Erros são as condições críticas que ocorrem devido à falta de recursos do sistema e não podem ser manipulados pelo código do programa. Erros não podem ser recuperados por qualquer meio, porque eles não podem ser criados, lançados, capturados ou respondidos. Erros são causados devido à falha catastrófica que geralmente não pode ser tratada pelo seu programa.
Erros são sempre do tipo desmarcado, pois o compilador não possui nenhum conhecimento sobre sua ocorrência. Erros sempre ocorrem no ambiente de tempo de execução. O erro pode ser explicado com a ajuda de um exemplo, o programa tem um erro de estouro de pilha, erro de falta de memória ou um erro de travamento do sistema, esse tipo de erro é devido ao sistema. O código não é responsável por tais erros. A conseqüência da ocorrência do erro é que o programa é finalizado anormalmente.
Definição de Exceção
"Exceção" também é uma subclasse da classe interna "Throwable". Exceções são as condições excepcionais que ocorrem em um ambiente de tempo de execução. Na maioria das vezes, as exceções são causadas devido ao código do nosso programa. Mas, as exceções podem ser tratadas pelo próprio programa, pois as exceções são recuperáveis. As exceções são tratadas usando três palavras-chave “try”, “catch”, “throw”. A sintaxe de gravar uma exceção é:
try {// escreve seu código aqui} Catch (tipo de exceção) {// escreve seu código aqui}
No código acima, o código escrito no bloco try é o código que você deseja monitorar para a exceção. Se a exceção ocorrer em um bloco try, ela será lançada usando a palavra-chave "throw". A exceção lançada pode ser capturada pelo bloco "catch" do código acima. "Tipo de exceção" é o tipo da exceção que ocorreu.
Em palavras simples, podemos dizer que os erros ocorridos devido ao código impróprio são chamados de exceções. Por exemplo, se uma classe solicitada não for encontrada ou um método solicitado não for encontrado. Esses tipos de exceções são devidos ao código no programa; o sistema não é responsável por esses tipos de exceções. As exceções são classificadas como “marcadas” e “desmarcadas”. Exceções não verificadas não estão no conhecimento do compilador como elas ocorrem durante o tempo de execução, enquanto o compilador tem o conhecimento sobre exceções verificadas como elas são conhecidas pelo compilador durante o tempo de compilação.
Principais diferenças em erro e exceção
- O erro ocorre apenas quando os recursos do sistema são deficientes, ao passo que uma exceção é causada se um código tiver algum problema.
- Um erro nunca pode ser recuperado, enquanto uma exceção pode ser recuperada preparando o código para manipular a exceção.
- Um erro nunca pode ser tratado, mas uma exceção pode ser manipulada pelo código se o código lançando uma exceção for gravado dentro de um bloco try e catch.
- Se ocorrer um erro, o programa será finalizado anormalmente. Por outro lado, se a exceção ocorrer, o programa lançará uma exceção e será manipulado usando o bloco try e catch.
- Os erros são do tipo não verificado, isto é, os erros não estão no conhecimento dos compiladores, enquanto uma exceção é classificada como marcada e desmarcada.
- Erros são definidos no pacote java.lang.Error, enquanto uma exceção é definida como java.lang.Exception.
Conclusão:
Exceções são os resultados de erros cometidos na codificação do programa, e os erros são o resultado do funcionamento inadequado do sistema