Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro estoura no VS e não no console

Eu fiz os mesmos passos mas meu erro está acontecendo no VS e não no console.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ByteBank
{
    class SaldoInsuficienteException : Exception
    {
        public SaldoInsuficienteException()
        {
        }

        public double Saldo { get; }
        public double ValorSaque { get; }

        public SaldoInsuficienteException(double saldo, double valorSaque) : this("Tentativa de saque de " + valorSaque + " com saldo de " + saldo)
        {
            Saldo = saldo;
            ValorSaque = valorSaque;
        }

        public SaldoInsuficienteException(string mensagem) : base(mensagem)
        {
        }
    }
}

E a ContaCorrente

using System;

namespace ByteBank
{
    public class ContaCorrente
    {
        public Cliente Titular { get; set; }

        public static int TotalDeContasCriadas { get; private set; }


        public int Agencia { get; }
        public int Numero { get; }

        private double _saldo = 100;

        public double Saldo
        {
            get
            {
                return _saldo;
            }
            set
            {
                if (value < 0)
                {
                    return;
                }

                _saldo = value;
            }
        }

        public int TaxaOperacao { get; }

        public ContaCorrente(int agencia, int numero)
        {
            if(agencia <= 0)
            {
                throw new ArgumentException("O argumento agencia deve ser maior que zero", nameof(agencia));
            }

            if (numero <= 0)
            {
                throw new ArgumentException("O argumento numero deve ser maior que zero",nameof(numero));
            }

            Agencia = agencia;
            Numero = numero;

            TotalDeContasCriadas++;
            TaxaOperacao = 30 / TotalDeContasCriadas;
        }
        public void Sacar(double valor)
        {
            if (_saldo < 0)
            {
                throw new ArgumentException("Valor do saque não pode ser negativo", nameof(valor));
            }
            if (_saldo < valor)
            {
                throw new SaldoInsuficienteException(Saldo, valor);// Erro acontece aqui "ByteBank.SaldoInsuficienteException: 'Tentativa de saque de 1000 com saldo de 600'
"
            }
            _saldo -= valor;
        }

        public void Depositar(double valor)
        {
            _saldo += valor;
        }


        public void Transferir(double valor, ContaCorrente contaDestino)
        {
            if (_saldo < 0)
            {
                throw new ArgumentException("Valor inválido para a transferência", nameof(valor));
            }
            Sacar(valor);

            contaDestino.Depositar(valor);
        }
    }
}
1 resposta
solução!

Descobri o que era. Não adicionei o retorno no catch