Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
vanessaestanislau opened this issue Mar 25, 2022 · 3 comments

Comments

@vanessaestanislau
Copy link

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

@cami-la
Copy link
Owner

cami-la commented Mar 25, 2022

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. (:

@vanessaestanislau
Copy link
Author

Perfeito, Cami.
Obrigada!!

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

Abração!!

@cami-la
Copy link
Owner

cami-la commented Mar 26, 2022

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;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants