3
respostas

RuntimeException vs Exception

Alguém poderia me dar um exemplo de uma situação que seria melhor criar uma classe que extends RuntimeException (unchecked) em vez de Exception (checked)?

Na minha cabeça já que extends Exception deixa minha exceção checked, ou seja, terei ajuda do próprio compilador pra ver se meu código funciona (já que eu tenho que adicionar throws nos métodos que lançam exceção), por que eu deveria usar RuntimeException em algum momento? Se usando RuntimeException eu ainda corro o risco de ter um programa que lança uma exceção em tempo de execução e que eu nem tratei e o compilador nem teve como me ajudar neste caso.

3 respostas

Olá Philipe,

dê uma olhada nesse link: http://respostas.guj.com.br/13404-diferenca-entre-exception-e-runtimeexception

Att,

Copiei a postagem do link acima para cá. Se por ventura o post for deletado teremos sempre essa informação aqui. Resposta do nosso amigo Aleksandro.

java.lang.Exception = checked

java.lang.RuntimeException = unchecked

Exceções UNCHECKED : Representam defeitos no programa ( bugs) - muitas vezes argumentos inválidos passados ??para um método não- privada, refletem erros na lógica do seu programa e não pode ser razoavelmente recuperado de em tempo de execução e são subclasses de RuntimeException , e geralmente são implementados usando IllegalArgumentException , NullPointerException , ou IllegalStateException um método não é obrigado a estabelecer uma política para as exceções não verificadas lançadas por sua execução.

Exceções CHECKED : Representam condições inválidas em áreas fora do controle imediato do programa ( problemas de entrada do usuário inválido , banco de dados, falhas de rede , arquivos ausentes, entre outros) são subclasses de Exception um método é obrigado a estabelecer uma política para todas as exceções verificadas lançadas por sua implementação ( ou passar a exceção verificada mais acima na pilha , ou manipulá-lo de alguma forma)

Divisão por zero = runtime Erro de sintaxe = exception