Escrevi o seguinte código no método ContaCorrente():
public ContaCorrente(int agencia, int numero)
{
if (agencia <= 0)
throw new ArgumentException("O número da agência deve ser maior que 0.",nameof(agencia));
if (numero <= 0)
throw new ArgumentException("O número da conta deve ser maior que 0.",nameof(numero));
Agencia = agencia;
Numero = numero;
TotalDeContasCriadas++;
TaxaOperacao = 30/ TotalDeContasCriadas;
}
No meu método Main(), escrevi o seguinte:
namespace ByteBank
{
class Program
{
static void Main(string[] args)
{
try
{
var conta = new ContaCorrente(0, 10);
}
catch (ArgumentException e)
{
Console.WriteLine("Ocorreu um erro do tipo ArgumentException");
Console.WriteLine(e.Message);
}
Console.ReadLine();
}
}
}
A saída foi a mensagem:
"Ocorreu um erro do tipo ArgumentException
O número da agência deve ser maior que 0.
Nome do parâmetro: agencia"
Eu não esperava essa mensagem "Nome do parâmetro: agencia", porque eu não escrevi isso. Eu estava esperando somente a mensagem do argumento. Seria uma nova função do C#? Ele já dá o nome do parâmetro que gerou a exceção quando usamos a construção com nameof ?