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

ParamName boas praticas

É possível testar todas as variável e adicionar no ParamName? Tipo em uma string concatenada?

tipo

string erro = string.Empty;
if(conta <= 0)
    erro +="conta ;";
if(agencia <= 0)
    erro +="agencia ;";
if(!string.IsNullOrEmpty(erro))
    throw new ArgumentException("O argumento " + erro + "esta incorreto!", erro);
1 resposta
solução!

Opa, Eric. Tudo bom?

Isto é pouco usual, apesar de possível.

Além disso, você está investindo muito código em uma situação que não deveria acontecer.

Note que a saída, quando conta <= 0 será "O argumento conta ;esta incorreto!"". O ponto-e-vírgula não deveria estar ali, mas se você quiser montar o texto com todas as situações possíveis (vários nomes e plural, um só nome e singular, vírgulas etc.) o código vai ficar mais complexo ainda.

Ao lançar exceções, o mais comum é lançar o quanto antes e da forma mais simples possível:

if(conta <= 0)
    throw new ArgumentException("A conta deve ser maior que 0", nameof(conta))

if(agencia <= 0)
    throw new ArgumentException("A agência deve ser maior que 0", nameof(agencia))