none
Tratamento de erros com Try RRS feed

  • Pergunta

  • Galera, tenho o seguinte código, quero tratar o erro para quando o usuário tentar sacar um valor superior ao valor de saldo, ser exibida a mensagem "O valor de saque é maior que o valor de saldo" mas não estou conseguindo.

           try
                {
                    c.saque(Convert.ToDouble(textBox5.Text));

                    MessageBox.Show("seu saldo atual é:  " + c.saldo);
                }

                catch (Exception){

                    MessageBox.Show("O valor de saque é maior que o valor de saldo");

                } 
               

    sábado, 2 de julho de 2016 19:20

Respostas

  • Boa tarde,

    Paloma, no meu ponto de vista isso não deveria ser tratado como um erro e sim como uma regra de negócio. Mas se uiser deixar assim, você precisa adicionar uma condição no seu método saque "c.saque". Ou seja se o valor do saque for maior você dispara uma exceção:

    if (valorSaque > saldo)
        throw new Exception("Valor do Saque é maior que o valor do saldo");

    Na chamada do método pode fazer assim:

    try
    {
        c.saque(Convert.ToDouble(textBox5.Text));
    
        MessageBox.Show("seu saldo atual é:  " + c.saldo);
    }
    
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

    Isso vai dar certo.

    Espero ter ajudado, qualquer dúvida estou a disposição.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Sugerido como Resposta Silvaney sábado, 2 de julho de 2016 21:37
    • Marcado como Resposta Palomapsj domingo, 3 de julho de 2016 11:43
    sábado, 2 de julho de 2016 21:24

Todas as Respostas

  • Boa tarde,

    Paloma, no meu ponto de vista isso não deveria ser tratado como um erro e sim como uma regra de negócio. Mas se uiser deixar assim, você precisa adicionar uma condição no seu método saque "c.saque". Ou seja se o valor do saque for maior você dispara uma exceção:

    if (valorSaque > saldo)
        throw new Exception("Valor do Saque é maior que o valor do saldo");

    Na chamada do método pode fazer assim:

    try
    {
        c.saque(Convert.ToDouble(textBox5.Text));
    
        MessageBox.Show("seu saldo atual é:  " + c.saldo);
    }
    
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

    Isso vai dar certo.

    Espero ter ajudado, qualquer dúvida estou a disposição.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Sugerido como Resposta Silvaney sábado, 2 de julho de 2016 21:37
    • Marcado como Resposta Palomapsj domingo, 3 de julho de 2016 11:43
    sábado, 2 de julho de 2016 21:24
  • Obrigada pela resposta,

    já tinha resolvido quando vi sua resposta mas foi exatamente o que eu fiz, porém realizei o if dentro da classe conta. 

    domingo, 3 de julho de 2016 03:24
  • se quiser entender um pouco mais sobre tratamento de erros visite este link http://www.codigoexpresso.com.br/Home/Postagem/25

     
    Se foi útil e/ou resolveu seu problema, não esqueça de marcar como resposta.
    Visite : www.codigoexpresso.com.br
    domingo, 3 de julho de 2016 18:37