Olá desenvolvedores, até aqui conhecemos a estrutura do tratamento de exceções do ponto de vista de erro. Visto que ao executar um código Java, diferentes erros podem ocorrer. Entre os quais erros de codificação feitos pelo programador, erros devido à entrada de dados errada, ou outras coisas imprevisíveis.

No entanto, hoje, começaremos a aprender como de fato tratar as exceções a partir dos blocos Try/Catch. Este bloco será utilizado quando for necessário algum método que lance uma CheckedException.

O CheckedException é um erro que acontece fora do controle do programa, mas que devem ser tratados pelo desenvolvedor para que o programa possa funcionar.

Dentro do bloco Try fica resguardado o código cuja exceção pode ocorrer, e por este motivo é também chamado de bloco protegido. Isto ocorre porque quando uma exceção é lançada, ou seja, quando há algum problema com as linhas de código dentro do bloco, um desvio para o bloco catch é promovido.

Assim, podemos entender que o catch é o ponto de caída do código após a interrupção em seu fluxo de execução. Ao passo que o try compreende uma maneira robusta de tratarmos possíveis erros.

Por exemplo, mencionamos que entre os erros possíveis de acontecer uma entrada de dados errada por parte do usuário é um dos mais comuns. Isso poderia resultar em uma quebra na execução do sistema por uma falha que não foi prevista. O try nos permite antecipar e evitar esta quebra brusca do sistema em tempo de execução, tratando este erro da melhor forma possível.

É importante ressaltar que cada bloco try pode ser seguido por zero ou mais blocos catch. Porém, cada bloco catch se refere única exclusivamente a um tipo de exceção.

ENTENDENDO ESSA ESTRUTURA

Sobre o tratamento de exceções partiremos da premissa de que toda exceção interrompe um bloco e um fluxo de processo.

Conforme exemplifica a imagem acima, dentro do bloco try está o nosso código com toda a sua regra de negócio. Estas regras compreendem os processos do sistema. E como exemplo, citamos a realização de uma venda, a emissão de certificados ou emissão de uma nota fiscal.

Suponhamos que em um sistema de emissão de certificados, a rotina para gerar um certificado começou a ser processada. Assim, em um dado momento uma exceção é lançada. Desse modo, no momento exato em que o erro é encontrado, a rotina de processamento é interrompida e o fluxo de execução é desviado para o bloco catch.

E isso não significa que o sistema como um todo irá parar, mas neste caso, será somente para o usuário em questão. O Java tem este poder, com ele é possível separar as rotinas de cada usuário, de forma que não afete todos os usuários do sistema, se o problema é de apenas um.

O Java enxerga cada usuário do sistema com sendo único, assim cada usuário tem a sua rotina, cada usuário tem os seus processos. E um usuário não enxerga o erro do outro.

CATCH

Dentro do catch temos o Exception que deverá ser substituído pelo nome do tipo de exceção. E dentro do escopo do bloco o printStackTrace que é a pilha de exceções, qual tratamos no tutorial anterior. O método printStackTrace imprimirá no console uma sequência de métodos, isto é, a sequência de erros.

Assim, é dentro deste contexto do catch que o bloco de tratamento que está associado a condição de exceção (Exception e) se insere.

EM POUCAS PALAVRAS

Sobre o tratamento de exceções, temos um programa executando normalmente sua rotina, seja ela qual for, de emissão de nota fiscal, processando uma venda, enfim. Em um dado momento deste processo um erro é encontrado, então um desvio é feito para o bloco catch. Onde normalmente informaríamos o erro ao usuário.

Entenda, uma exceção contém pelo menos uma String que a descreve, que pode ser obtida pela aplicação do método getMessage(). Assim, poderíamos informar ao usuário que não foi possível concluir aquela rotina.

Note que são duas mensagens, uma que será impressa no console para a equipe de desenvolvimento. E outra com um contexto mais amigável ao usuário. A mensagem para usuário seria algo como, “Não foi possível concluir a emissão do certificado. Usuário não encontrado no sistema”.

Bom, espero que tenha gostado do tutorial de hoje, nos vemos no próximo. Até lá.