1
resposta

Dúvida teórica - A necessidade de extender Throwable

Boa tarde,

Tenho uma dúvida à respeito da classe Throwable. Por que não podemos fazer o cast de new MinhaExcexao("erro") para ela? O compilador diz que tem que ser classe filha obrigatoriamente, mas não entendo o porquê o cast explícito não funciona. Por exemplo, por que throws (Throwable) new MinhaExcecao("erro"); não compila ?

1 resposta

Olá João, tudo bem com você?

Isso é um pouco estranho. Eu acredito que deveria jogar a exceção sem problemas já que mesmo tirando o casting explícito que você fez, o próprio Java faria um casting implícito para você (também conhecido como upcasting). Experimente retirar a letra "s" no final de "throws", o comando throws geralmente aparece apenas na assinatura dos métodos que podem jogar uma exceção. Quando queremos jogar a exceção diretamente usamos apenas um throw new RuntimeException("erro");, por exemplo.

Testa aí e depois me diz se faz sentido. Qualquer coisa estou à disposição!

Abraços e bons estudos!!