2
respostas

Utilização de try { } catch {}

Ficou claro que em try {} colocamos o trecho de código que possui um "potencial " erro de execução. Porem a utilização de catch {} não ficou muito claro pra mim.

Ele deve ser utilizado para tratar o erro ou o tratamento deve ser feito antes? por exemplo:


        String numeros = "1";
        int soma;

        try {
            soma = numeros + numeros;
            System.out.println(soma);
        } catch (IllegalArgumentException e) {

            numeros = String.valueOf(Integer.valueOf(numeros));
            soma = Integer.parseInt(numeros + numeros);
            System.out.println(soma);

        }

No código acima temos: Variável 'numero' criada como String; mas aqui vamos supor que não conhecemos o formato em que variável vai chegar para ser executada..Dentro de catch um possível 'tratamento';

A duvida e a seguinte: a variável 'numero' precisa receber todos os tratamentos conhecidos e ai sim incluída em try{}, utilizando catch{} apenas para envio de mensagens de casos não tratados, ou fazemos o tratamento em catch também (como no código acima)?

2 respostas

Olá Rafael, tudo bem?

O bloco try{} é utilizado para envolver o trecho de código que pode gerar uma exceção, ou seja, um erro de execução. Já o bloco catch{} é utilizado para tratar a exceção gerada pelo bloco try{}.

No seu exemplo, o bloco try{} contém a operação que pode gerar uma exceção, que é a soma de duas variáveis do tipo String. Caso essa operação gere uma exceção do tipo IllegalArgumentException, o bloco catch{} será executado para tratar essa exceção.

No caso específico do seu exemplo, o bloco catch{} está sendo utilizado para tratar a exceção gerada pelo bloco try{} e realizar uma nova operação para obter o resultado desejado. Isso é uma prática comum em programação, pois nem sempre é possível prever todos os erros que podem ocorrer em um trecho de código.

Respondendo à sua pergunta, é importante realizar o tratamento de exceções tanto no bloco try{} quanto no bloco catch{}. O bloco try{} deve conter o trecho de código que pode gerar a exceção, enquanto o bloco catch{} deve conter o tratamento para essa exceção.

Espero ter ajudado e bons estudos!

Ola Matheus, como vai?

Comigo tudo bem! obrigado por perguntar!

Ajudou sim!

obrigado!