O tratamento de exceções em Java ocorre transferindo a execução normal de um programa para o devido código de tratamento de exceções quando uma exceção ocorre. Para realizar o desvio da execução do programa utiliza-se as palavras chaves
try, catch ou finally.Instrução
tryA sintaxe da instrução
try se dá da seguinte forma:
try {
//código passível de exceções
}
Quando uma exceção é lançada em um bloco
try o restante do código após à exceção é ignorado, transferindo o fluxo de execução para o tratamento dessa exceção.Instrução
catchA instrução que captura (recebe) e trata da exceção lançada pela instrução
try é a catch. Cada instrução try pode ter zero ou mais instruções catchs. A sintaxe de uma instrução catch é:
catch(<TipoDaExceção> <exceção>) {
//código de tratamento de exceção
}
Os blocos
catchs devem ser posicionados logo após o término do bloco try, sem linhas de comando ou blocos entre eles. Assim como um bloco try e um catch devem ser dispostos juntos, dois blocos catchs também devem seguir este mesmo padrão. Deve-se atentar, porém, para a ordem dos blocos catchs. Blocos catchs devem ser dispostos de forma que primeiro estejam as exceções específicas e por último as gerais, pois quando uma exceção é lançada no bloco try, os blocos catchs são verificados um por um seguindo a sequencia das linhas do código. Assim se uma exceção específica for colocada após uma geral a específica nunca será executada.Instrução
finallyApesar das instruções
try e catch serem ótimas elas não são perfeitas. Quando uma exceção é lançada em uma instrução try, todo o restante do código é descartado e o fluxo é transferido para a instrução catch, assim se for necessário, por exemplo, de uma reinicialização de variáveis, ou desalocação de recursos. A instrução finally resolve este problema, pois será sempre excecutada após os comandos (a qualquer ponto) de um bloco try, lançando ou não uma exceção. A instrução finally é tão poderosa que até mesmo antes de um comando return do bloco try ela é executada. Desta forma, o bloco finally é o perfeito bloco para se fechar sockets, e realizar qualquer operação de limpeza que seu código necessite.Comando
try-catch-finallyQuando um bloco
try é escrito, pelo um bloco catch ou finally deverá ser escrito. Como mostra a tabela abaixo:| try {} | - | - | INVÁLIDO |
| try {} | catch {} | - | VÁLIDO |
| try {} | finally {} | - | VÁLIDO |
| try{} | catch {} | finally{} | VÁLIDO |
try{} | finally{} | catch {} | INVÁLIDO |
catch {} | finally{} | - | INVÁLIDO |
catch {} | - | - | INVÁLIDO |
finally{} | catch {} | - | INVÁLIDO |
finally{} | - | - | INVÁLIDO |
Parabens, otima expliacação!
ResponderExcluirObrigada, às ordens, se houver alguma dúvida pode perguntar.
ResponderExcluirNossa adorei seu blog... fala sobre assuntos diversos e suas explicações são fáceis de entender.. So uma coisinha o design dele ta meio feiosinho.. mas o conteúdo ta de Parabéns... ;)
ResponderExcluirO design não importa pra mim porque criei esse blog apenas com a intenção de documentar alguns estudos meus. :)
ExcluirFeito por mim e para mim. ;)