Tratamento de Exceção? [RESOLVIDO]

5 respostas
ricardocomp

Olá pessoal,
eu estou fazendo um método para realizar um calculo
e quando eu percebi que todo os tratamento que eu estava fazendo
poderia falhar se um usuário digitasse uma letra, ou seja uma String,
como eu devo fazer esse tratamento usando uma Exception

public void calculaDensidadeRelativa(Double somatorio)
            throws ValorSomatorioInvalidoException, ResultadoNegativoException {

        if(somatorio <= 0){
            throw new ValorSomatorioInvalidoException("Valor do Somatório Inválido!");
        }
        else{
            double resultado_aux = (somatorio / this.num_rep);
            if(resultado_aux < 0){
                throw new ResultadoNegativoException("Não Detectado!");
            }
            else{
                resultado = new Double((somatorio / this.num_rep)).toString();
            }
        }
    }

Será que alguém pode me dar uma ajuda?

[]'s.

5 Respostas

ricardocomp

Existe algum tipo de expressão regular no Java para
tratar qualquer tipo de letra?

[]'s.

J

quando o usuario digitar, vc recebe uma String correto?

vc pode fazer algo assim:

String digitada = "212j1s.22";
String semLetras = digitada.replaceAll("[a-zA-Z]", "");
if (digitada.length() == semLetras.length()) {
   // valor digitado é válido
} else {
  // valor digitado não é válido
}

não tenho certeza se a expressão regular está certa, tem que testar x)

[]'s

Jairo_Junior1

Quando você tenta converter uma String para um número, mas a String não contém um número, é lançada uma NumberFormatException. Ou seja, é só capturar essa exceção. Deu pra entender?
Outra coisa, quando você quiser descobrir uma exceção, faça a exceção acontecer.

ricardocomp

Jóia pessoal?

Muito obrigado à todos pela ajuda,
eu fiz o que o jhonatandarosa e deu certo. :smiley:

Abraço a todos.

Hellmanss

jhonatandarosa:
quando o usuario digitar, vc recebe uma String correto?

vc pode fazer algo assim:

String digitada = "212j1s.22";
String semLetras = digitada.replaceAll("[a-zA-Z]", "");
if (digitada.length() == semLetras.length()) {
   // valor digitado é válido
} else {
  // valor digitado não é válido
}

não tenho certeza se a expressão regular está certa, tem que testar x)

[]'s

Esse código até resolve, mas a maneria como é feita fica muito ruim.

Sugiro usar expressão regular para ver se possui caracteres que não sejam numeros, caso tiver, lançar um aviso para o Usuario.

Criado 8 de dezembro de 2009
Ultima resposta 10 de dez. de 2009
Respostas 5
Participantes 4