Estou estudando sobre try, catch e entendi como se usa. Mas não entendi a finalidade do finally. Poderia ser em um sistema quem tem aqueles captcha pra fazer um download, se digitar algo invalido, no bloco finally uma variavel acrescenta 1 nela mesma e se chegar a 3 é impossivel fazer o download?
Não importa oque aconteça, o finally sempre vai ser executado independente do cenário, por exemplo quando vc tenta fechar uma conexão com o banco ou fazer qualquer outro tratamento de exceção no catch e isso gera outra exceção, sobra o finaly pra vc pelo menos mostrar uma mensagem pro usuário.
G
gustavo.rotondo
correto. peguei uma prova do meu prof do ano passado e fui tentar fazer essas perguntas
a) se tiver um bloco finally, o bloco é executado. se não tiver, ele segue para o proximo metodo caso nao haja algum desvio.
b) o bloco finally sempre é executado
c) é um metodo que independente de ter sido encontrado erros ou não, sempre é executado ( ou o que voce me explicou acima)
d) essa eu não sei a resposta
yurifw
no d ele executa o primeiro catch correspondente, por isso temos que começar dos mais especificos
G
gustavo.rotondo
por exemplo. varios catchs que verificam uma divisão por 0, ele inicia pelo primeiro?
as outras estão corretas?
yurifw
as outras estao corretas sim,
depende do que voce definiu nos blocos catch, por exemplo:
try{2/0}catch(ArithmeticExceptionae){//n lembro se e exatamente essa exceção que trata issoSystem.out.print("executou o bloco 1";)}catch(Exceptione){System.out.print("executou o bloco 2");}