1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Qual a melhor forma de tratar um Exception?

Bem, eu tenho um método que cria um objeto de uma classe, e que invocará outro método que possui um try...catch, e que, retorna uma mensagem quando processado o catch. No método que o chamou, existe o trecho de código relatorio.setData(conversaoData.converterParaTipoDate(tData.getText())); que chama este método:

public String converterParaFormatoBrasileiro (Date pData) {
        String data = null;
        try {
            SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy");
            data = f.format(pData);
        } catch (Exception f) {    
            JOptionPane.showMessageDialog(null, "Data inválida! ");
        }
            return data;
    }

Bom, o problema é que, mesmo entrando no catch nesse método, a execução continua normalmente no método que o chamou, como abaixo:

private void alterarRelatorio(){
        ConversaoData conversaoData = new ConversaoData();
        relatorio.setData(conversaoData.converterParaTipoDate(tData.getText()));
        // restante de código 
    }

O problema é que, o restante de código não poderia ser executado. Para tentar solucionar esse problema, tentei colocar um try...catch no método acima, mas ele não para a execução mesmo que tenha sido capturada uma exceção no método que converte a data.

Eu gostaria de fazer isso de uma forma que não fosse a de verificar se o valor retornado é nulo, daí executasse o restante do código, mas sim se possível fazer com a captura de Exceções.

Preciso de ajuda para resolver esse problema, agradeço a todos que responderem...

  • Complicado essa sua situação do catch não estar pegando a exceção, mas vou tentar te ajudar da forma que eu sempre uso: try{ //{código que pode gerar uma excessão} }catch(Exception e){ System.out.println("erro: "+e.getMessage()); } Algo que pode estar ocorrendo é que esse método que você esta usando para converter as datas não deve ta gerando uma exceção! O ideal seria você testar com um: if(data==null) //tal coisa else //outra coisa te+

    Felipe Muller   27 de jun de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags exception try-catch ou faça a sua própria pergunta.