exceptions-java icon indicating copy to clipboard operation
exceptions-java copied to clipboard

Exceções personalizadas não podem estender de RuntimeException?

Open vanessaestanislau opened this issue 3 years ago • 3 comments

Oi Cami,

Parabéns pela didática! (:

Vc não abordou sobre a possibilidade das exceptions personalizadas poderem estender de RuntimeException ao invés de estenderem direto de Exception. Mas essa possibilidade existe, correto?

Aguardo retorno e agradeço desde já <3 <3

vanessaestanislau avatar Mar 25 '22 14:03 vanessaestanislau

Oi, Van. Mais uma vez obrigada pelo feedback. <3

Não abordei esse tipo de extends por conta do tempo mesmo. Teria taaantas outras coisas mais para falar. :'( Escolhi a Exception porque é a mais "difícil" de entender para quem é iniciante.

Mas só para reforçar: Uma Exception Personalizada é uma classe que extends de outra classe. Ela é "especial" porque com ela, podemos fazer tratamento de possíveis bugs do nosso sistema. Até aí tudo bem, né? Mas o que torna essa classe especial? Na verdade, são as propriedades herdadas da classe Throwable. Dá uma olhadinha no recorte da hierarquia das Exceptions que coloquei no README.md.

Geralmente usamos a class Exception como extends quando queremos que seja obrigatório o tratamento de algum bug já "previsto" (força o uso do try-catch ou o throws). Pensa no exemplo das IOExceptions. Mas nada impede criar uma Exception Personalizada que estenda da RuntimeException! Inclusive, eu sempre uso ela quando eu crio minha própria BusinessException. (:

cami-la avatar Mar 25 '22 19:03 cami-la

Perfeito, Cami. Obrigada!!

Pra ver se entendi 100%: o throw new somente é usado para exceções pernsonalizadas, correto?

Abração!!

vanessaestanislau avatar Mar 26 '22 14:03 vanessaestanislau

Por nada. (:

Não somente, mas sim, principalmente.

Em algum ponto do seu programa, sei lá, talvez lance uma IllegalArgumentException. Nesse caso, essa Exception é do próprio Java e podemos fazer: throw new IllegalArgumentException;

cami-la avatar Mar 26 '22 17:03 cami-la