Boa noite!
Entendi que o Java já tem suas próprias exceções, e que podemos customizar. Porém, não ficou claro quando criar uma nova classe se tenho que sempre herdar do RuntimeException, ou depende da hierarquia?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa noite!
Entendi que o Java já tem suas próprias exceções, e que podemos customizar. Porém, não ficou claro quando criar uma nova classe se tenho que sempre herdar do RuntimeException, ou depende da hierarquia?
Não precisa herdar sempre de RuntimeException. Herdamos de RuntimeException geralmente quando queremos que nossas exceções não precisem obrigatoriamente ser tratadas (unchecked exceptions), ou seja, não é obrigatório usar o bloco try/catch ou throws.
Podemos também herdar diretamente da classe Exception, que é uma checked exception, ou seja, o compilador te obriga a tratá-las, então vc obrigatoriamente vai ter q colocar o bloco try/catch ou throws.
Mas podemos criar nossa própria hierarquia de exceções também, como por exemplo, LivroException -> ProdutoException -> LojaOnlineException -> RuntimeException.