Cursos / Eletrônica / Programação Orientada a Objetos / Aula

arrow_back Aula 11 - Tratamento de Exceções

Exceptions (Sintaxe)

Primeiramente, um pouco de marketing sobre o mecanismo de tratamento de exceções em Java. Devo falar que ele é totalmente “Clean”, ou seja, é feito para que seja totalmente transparente e intuitivo para o programador capturar e tratar as condições adversas.

É baseado de maneira que você saiba quando está chamando um método que possa levantar uma exceção, assim você pode escrever códigos para lidar com essas possibilidades. Se você sabe que um método poderá causar algum problema antecipadamente, podemos então nos precaver e estar preparado para o pior! E se o pior vir a acontecer, podemos contornar a situação, já que era sabido que algo de ruim poderia acontecer!

Vamos começar pelo mais básico, ou seja, como finalmente sabemos que um método o qual desejamos chamar pode causar algum tipo de problema? Em Java, os métodos utilizam a cláusula throws na declaração do método!

O método ligarReator() acima pode causar uma exceção em tempo de execução, sendo assim é nossa obrigação informar que tipo de exceção pode ocorrer para que os usuários dessa função possam então se precaver.

Para os mais apressadinhos e curiosos, notaram algo de especial no método acima? De onde vem esse tipo de exceção ReatorException? Parece-me algo criado pelo programador especialmente para tratar de um tipo específico de risco! E você está certo, o mecanismo para tratamento de exceções do Java é bastante completo e nos permite criar nossas próprias exceções, mas vamos devagar com a missa! Esse assunto será tratado mais tarde, foi apenas uma pequena pausa para deixá-los com água na boca!

Muito bom mesmo! Agora sei que se eu chamar um método e ele tiver uma cláusula denominada throws na sua declaração, significa que eu tenho que me precaver caso o pior aconteça! Massa! Mas, como eu faço isso?

Calma! Para isso que existe o try/catch! Vamos aprender agora como tratar a chamada a um método que possa causar uma exceção! Vejamos o código a seguir!

E para que tudo isso? O compilador tem que saber que você está chamando um método de risco!

Ou seja, o compilador não irá descansar enquanto você não colocar o seu código arriscado em um bloco try/catch. Essa é a forma de dizer ao compilador que você sabe que alguma coisa ruim poderá acontecer no método que você está chamando e que você está preparando para o que der e vier!

Lembre-se: o compilador não quer saber como você irá tratar o problema, ele se importa apenas em saber se você está tomando as devidas precauções.

Anote a Dica

Uma exceção é um objeto... do tipo Exception

Lembra da nossa árvore “genealógica”, mostrada anteriormente? Pois então, toda exceção que criarmos é filha de Exception, que por sua vez herda de Throwable, sendo assim, como uma exceção é um objeto, tudo que capturamos na cláusula ‘catch’ é também um objeto, representado pelo parâmetro ‘ex’, conforme o exemplo a seguir.

Agora que aprendemos um pouco mais sobre o mundo das exceções em Java, vamos por em prática os nossos conhecimentos.

Versão 5.3 - Todos os Direitos reservados