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?
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.