Ae gente, eu gostaria que vocês me ajudassem em uma coisa. Sei que isso não faz parte apenas de Java, mas gostaria que me auxiliassem no compreendimento de dois comandos: try cacth e try finally. Para que sevem, como é sua sintaxe , etc.
vc usa o try em trechos do codigo onde possa ocorrer exception e travar seu sistema, ae vc utiliza o try catch etc… para tratar isso exibir mensagens para o usuario e nao permirit que o sistema fique travado e o usuario com cara de bobo…
por exemplo na hora de conectar ao banco e o banco está fora do ar…isso irá gerar uma exception…
converter um caracter alfanumerico para int tb ira gerar uma exception…
vc usa o try da seguinte maneira…
try{
trecho do código que poderá gerar uma exception
}
catch(Exception e){
Trecho do codigo que vai ser excutado caso ocorra alguma exception, no caso abaixo ele iria exibir a mensagem de erro no console.
System.out.println(e.getMessage());
}
finally{
trecho de código que será exibido idependente de ocorrer exception oiu naum…esse trecho sempre será exibido…
O try é usado para manipular métodos (por exemplo) que lançam exceções como no código abaixo
class A {
cpublic void excecao() throws Exception{
throw new Excption("Excecao");
}
}
class B {
public static void main(Stirng[] a) {
A a = new A();
try{
a.excecao();
} catch (Exception e) {
e.printStackTrace();
}
}
}
ou seja, pode-se interpretar assim
tente executar o método xxxx() e pegue qualquer exceção e faça algo, que no meu caso eu mandei imprimir a pilha de erros
Com o finally não é muito diferente, ou seja, utiliza-se do mesmo modo, porém tudo que estiver entre as chaves, será executa HAVENDO ou NÃO exceção, tomamos como exemplo o código anterior temos:
class A {
cpublic void excecao() throws Exception{
throw new Excption("Excecao");
}
}
class B {
public static void main(Stirng[] a) {
A a = new A();
try{
a.excecao();
} catch (Exception e) {
System.out.println("Ocorreu a excecao");
e.printStackTrace();
} finally {
System.out.println("Executando o finally");
}
try{
System.out.println("Metodo que nao solta excecao");
} catch (Exception e) {
System.out.println("Ocorreu a excecao");
e.printStackTrace();
} finally {
System.out.println("Executando o finally");
}
}
}
Você irá perceber que em ambos os casos será impresso “Executando o finally”, o finally é muito utilizado em transações com o banco, ou seja, ocorreu um erro durante uma atualização nos dados, dentro do finally é feito um rollback da transação, e/ou é utilizado para fechar a conexão haja o que houver!
tente
começo
coma batata
chupe limao
fim
pegue
começo
ok... joga o limao fora..
fim
finalmente
começo
tome um copo dáagua pq ce ta ligado.. limao é lenha!
fim
Assim… passando a brincadeira, tudo que está dentro do bloco try, é o que pode gerar algo inesperado. e que o compilador nao saiba resolver sozinho, logo se ele nao sabe resolver sozinho… quem tem q resolver é vc… então ele joga a bola pra vc… dai vc catch, pega… dai dentro do catch vc fala… ó… faça algo que trate essa bola q jogaram pra cá… e não pare meu programa… (uma exceção nao tratada(pegada) encerra o seu programa… e ninguem quer q o programa pare de executar a nao ser q clique em sair né…
no finally vc coloca tudo que vc quer que sempre execute se ocorrer uma exceção ou não… aconteceu algo de errado? ok… passe pelo catch… e depois pelo finally…
é obrigado, ter ou um catch ou um finally para cada try.
try{
tente acessar o arquivo c:\x.html
}
catch(Exception x){
ah! vai q esse arquivo nao existe? dai claro q vai dar erro... (exceção) e seu programa nao pode parar né.. então trata ele aki.. fala pro seu programa ó.. nao tem.. blz.. xá pra lá..
}
finally{
bem.. aki vc faz o q achar melhor.. mas sempre vai ser executado.. sempre...!
}
[quote=iwallas]pense de jeito intuitivo…
tente
começo
coma batata
chupe limao
fim
pegue
começo
ok... joga o limao fora..
fim
finalmente
começo
tome um copo dáagua pq ce ta ligado.. limao é lenha!
fim
[/quote]
Não sei se foi você que bolou isso, mas ficou legal!
[quote=dreamspeaker][quote=iwallas]pense de jeito intuitivo…
tente
começo
coma batata
chupe limao
fim
pegue
começo
ok... joga o limao fora..
fim
finalmente
começo
tome um copo dáagua pq ce ta ligado.. limao é lenha!
fim
[/quote]
Não sei se foi você que bolou isso, mas ficou legal! [/quote]
eh q o nick do cara é batata quiz fazer um trocadilho rsrsrs foi eu sim =p