Try's

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.

Me ajudem , por favor ^^

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!

pense de jeito intuitivo…

try - tente

catch - pegue

finally- finalmente

Então vamos lá…

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...!
}

sei lá nao sou mto didático rsrsrsrs

[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! :slight_smile:

[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! :slight_smile: [/quote]

eh q o nick do cara é batata quiz fazer um trocadilho rsrsrs foi eu sim =p

hahahhaha

vlw gente^^

deu pra ter uma noção sim , e esse exemplo ficou d+,hahahah

brigado pessoal ^^