Boa noite. Ainda sou novato em desenvolvimento e estou com dificuldades para tratar uma "IndexOutOfRangeException". Gostaria que o meu botão de transferir gerasse uma mensagem de erro em 3 situações: 1° Se o valor da transferência for maior do que o saldo (OK, consegui); 2° Se o valor da transferência for negativo (OK, consegui); 3° Se o destinatário da transferência não tiver sido selecionado no combo box .(clicar no botão de transferir sem ter selecionado a conta destino). (Não consegui).
Será se alguém com mais conhecimento consegue me ajudar no 3° caso? Vi através dos LOGS que a exception gerada é "IndexOutOfRangeException".
Segue meu código:
Método Transferir:
public void Transfere (Conta destino, double valor)
{
{
this.Saca(valor);
destino.Deposita(valor);
}
}
Botão Transferir:
private void button3_Click(object sender, EventArgs e)
{
Conta c = BuscaContaSelecionada();
Conta cD = DestinoTransferencia();
string textoValorSaque = textoValor.Text;
double valor = Convert.ToDouble(textoValorSaque);
try
{
c.Transfere(cD, valor);
MessageBox.Show("Valor Transferido. R$ " + valor);
}
catch (SacaException exception)
{
MessageBox.Show("Saldo Insuficiente. \nSaldo disponível: R$ " + c.Saldo);
}
catch (ArgumentException exception)
{
MessageBox.Show("Valor inválido para transferência. \n" + valor);
}
MostraConta(c);
Método BuscaContaSelecionada:
private Conta BuscaContaSelecionada()
{
int indiceSelecionado = comboClientes.SelectedIndex;
Conta contaSelecionada = contas[indiceSelecionado];
return contaSelecionada;
}
Método DestinoTransferência:
private Conta DestinoTransferencia()
{
int indiceSelecionado = comboTransfere.SelectedIndex;
Conta cDestino = contas[indiceSelecionado];
return cDestino;
}
Além de não saber como tratar este tipo de exceção também não sei em qual método devo inserir o código... O log alarma o "BuscaContaSelecionada()" com "IndexOutOfRangeException".
Muito obrigado!
Obs.: Caso não tenha ficado claro, a função de transferir funciona normalmente, o que eu gostaria é que o sistema gerasse uma mensagem de erro para o usuário se ele não selecionar a conta destino, ao invés de gerar uma exceção e fechar.