Duvidas sobre "try/catch"

12 respostas
V

bom galera… to fazendo curso de java e to nas semanas finais… aprendi muita coisa e estou muito contente em um dia poder exercer melhor a area de programador e etc…

so que uma coisa que no curso eu nao entendi muito bem é a questao do try e do catch…
tipo meu professor me explicou mais explicou com termos tecnicos d+ eu nao peguei a ideia do que pra que serve…
alguem pudia da uma luz ai… de um modo mais facil de entender hehehe
brigadao ai pela atenção ;D

12 Respostas

J

Cara de uma olhadinha na nossa seçao de artigos e tutoriais, tem um tutorial la bem legalzinho sobre isso, e vc tbm pode dar uma procurada aqui no forum, pq ja foi várias vezes explicado sobre isso… mas creio que com o tutorial vc ja tira suas duvidas…

se ainda possuir alguma, poste ai =)

cya!

R

acho que se alguém explicar de modo mais direto será melhor

blocos Try…Catch são usados para Tratamento de Erros

o que isso quer dizer? quer dizer que eles evitam que seu programa pare por causa de um erro fatal na hora da execução.
Isso na prática, pq na teoria é um pouco mais complicado, nem tenho a moral de ficar explicando

a sintaxe vc ja deve saber

try

{  comandos }

catch (ClasseDeExcecao E)

{  comandos }

opa, vamos por partes

o programa tenta executar os comandos dentro do {} do try

se dentro de alguma função executada der erro, esse try tenta pegar a exceção com o catch

qndo vc usa catch “(ClasseDeExcecao E)”, significa que vc esta declarando uma instancia com o nome E de uma classe feita para tratar exceções de erros.

existem muuuuuuuuuuuuuuuuitas classes que tratam erros, geralmente o nome delas seguem esse padrão:

que tipo de erro a classe trata + palavra “exception”
por exemplo, tem uma classe chamada IOException
ela trata erros de I/O (input/output; entrada de dados/saida de dados)

melhor parar de escrever se não o pessoal aki vai pegar no meu pé por causa que meus posts são grandes…
se precisar de uma força, entre em contato…

D

fala! blz!

no livro dos Deitel tem uma parte la q lista as várias excessoes q podem ocorrer…

é uma mao na roda…

flw!

A

alem do try e do catch, ainda tem o finally…

try{}: comnados que serão executados catch{}: comandos que serão executados se houver algum erro no try finally{: comandos que serão executados independente de o erro acontecer ou não...
e vc pode usar mais de um catch, para tratamento de erros especificos

try{} catch(tipodeexcecao er){} catch(outrotipodeexcecao er){}, etc

até mais

C

Ola,

creio que este link possa ser util:

http://www.linhadecodigo.com.br/artigos.asp?id_ac=191

Abracos
Codec

R

Até hoje não vi a utilidade do Finaly

Vc pode por o que ia dentro do bloco do Finaly fora do bloco…

não faz diferença alguma…

A

é verdade,
até hoje eu ainda não vi utilidade pro finally…rsrs
mas eu só citei, pra mostrar pro cara que existe,
pra ficar bem esclarecido

até mais

M

“microfilo”:
Até hoje não vi a utilidade do Finaly

Vc pode por o que ia dentro do bloco do Finaly fora do bloco…

não faz diferença alguma…

realmente, no final das contas, o finally nao vai servir pra nada, hahahaha, com ou sem exceção, ele executa, ele seria então uma maneira clara e limpa de lembrar o programador de “arrumar a casa” depois do try/catch :cool:

D

Se eu colocar um return dentro do catch, o bloco do finaly vai ser executado!?[/b]

E

a galera ai ensinou como funciona o tratamento de erros! ai vitao vc deve se perguntar aonde e quando usar?

na verdade o tratamento de erros e uma maneira de vc programar corretamente, e usado onde um metodo nao pode completar sua tarefa, por razoes q ele no pode controlar.

vc deve usar o tratamento de erros na parte do seu programa onde vc acha q vai dar erro!, se der erro o programa vai disparar uma excessao, dai fica mais facil vc tratar os erros de programcao!! isso melhora a clareza dos programs principalmente em grandes projetos. :lol: :lol:

A
dark seid, se vc der um return no catch, o finally{} será executado sim... eu testei, é só rodar o código pra vc ver:
/**
 * Adriano Donisete Machado
 * 24/06/2004
 */	

public class trycatch {

    public trycatch() {
       System.out.println("\n\n\tResposta:   " + init() + "\n");
    }
    
    public int init()
    {
        try
       { 
	int a = 2/0;  // aki tá o erro
	return a;
        }
        catch(Exception e)
        {
	System.out.println("\n\tOcorreu um erro grave!!!");
	return 0;
         }
         finally
         {
	System.out.println("\n\tFunciona sim..." + 
	"\n\tIsso e' conteudo do finally{}");
          }    	
    }
    
    public static void main (String args[]) {
        trycatch c = new trycatch();
    }
}

ou seja, a finalidade do finally (sem trocadilho...rsrs) é que, mesmo que vc dê um return dentro do catch o comandos do finally serão executados...

até mais

M

boa pergunta pro exame essa né??? …então o finally tem uma diferença sim… heheahea, se não fosse por ele, nada seria executado depois de um return… :slight_smile:

Criado 21 de junho de 2004
Ultima resposta 25 de jun. de 2004
Respostas 12
Participantes 9