Alguem me ajuda por favor, meu codigo roda igual o do professor, mas fica aparecendo aquela mesangem no ContaCorrente.cs "Exceção sem Tratamento"
CODIGO CONTACORRENTE.CS
// using 05ByteBank;
using System;
namespace ByteBankE
{
public class ContaCorrente
{
public static double TaxaOperacao { get; private set; }
public static int TotalDeContasCriadas { get; private set; }
public Cliente Titular { get; set; }
//readonly somente leitura
public int Numero {get;}
public int Agencia { get; }
private double _saldo = 100;
public double Saldo
{
get
{
return _saldo;
}
set
{
if (value < 0)
{
return;
}
_saldo = value;
}
}
public ContaCorrente(int agencia, int numero)
{
if (agencia <= 0)
{
throw new ArgumentException("O argumento agencia deve ser maior que 0.");
}
if (numero <= 0)
{
throw new ArgumentException("O argumento numero deve ser maior que 0.");
}
Agencia = agencia;
Numero = numero;
TaxaOperacao = 30 / TotalDeContasCriadas;
TotalDeContasCriadas++;
}
public bool Sacar(double valor)
{
if (_saldo < valor)
{
return false;
}
_saldo -= valor;
return true;
}
public void Depositar(double valor)
{
_saldo += valor;
}
public bool Transferir(double valor, ContaCorrente contaDestino)
{
if (_saldo < valor)
{
return false;
}
_saldo -= valor;
contaDestino.Depositar(valor);
return true;
}
}
}
CODIGO PROGRAM.CS
using ByteBankE;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ByteBankE
{
class Program
{
static void Main(string[] args)
{
try
{
ContaCorrente contacorrente = new ContaCorrente(564, 0);
}
catch (ArgumentException ex)
{
Console.WriteLine("Ocorreu uma exceção do tipo ArgumentException");
Console.WriteLine(ex.Message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
ContaCorrente conta = new ContaCorrente(0, 0);
// try
// {
// }
// catch (DivideByZeroException e)
// {
// Console.WriteLine("Não é possível divisão por zero.");
// }
// catch (Exception e)
// {
// Console.WriteLine(e.Message);
// Console.WriteLine(e.StackTrace);
// Console.WriteLine("Aconteceu um erro!");
//}
//Metodo();
Console.WriteLine("Execução finalizada. Tecle enter para sair");
Console.ReadLine();
}
//Teste com a cadeia de chamada:
//Metodo -> TestaDivisao -> Dividir
private static void Metodo()
{
TestaDivisao(0);
}
private static void TestaDivisao(int divisor)
{
try
{
Dividir(10, divisor);
}
catch(NullReferenceException ex)
{
Console.WriteLine("Fui capturado pelo(NullReferenceException ex)");
Console.WriteLine(ex.StackTrace);
}
//int resultado = Dividir(10, divisor);
//Console.WriteLine("Resultado da divisão de 10 por " + divisor + " é " + resultado);
}
private static int Dividir(int numero, int divisor)
{
try
{
return numero / divisor;
}
catch(DivideByZeroException)
{
Console.WriteLine("Exceção com numero=" + numero + "e divisor=" + divisor);
return -1;
throw;//throw é controle de fluxo para lançar exceção
Console.WriteLine("codigo depois do throw");
}
}
}
}