Exceções personalizadas não podem estender de RuntimeException?
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
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. (:
Perfeito, Cami. Obrigada!!
Pra ver se entendi 100%: o throw new somente é usado para exceções pernsonalizadas, correto?
Abração!!
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;