2
respostas

[Sugestão] Projeto não está compilando devido a uma exceção - IndexOutOfRangeException

3 Aula = Fazendo parse e StreamWrite - Convertendo o texto para conta ao rodar o projeto.

Ao rodar a aplicação, eu estava convertendo cada linha do arquivo de texto em uma conta. Porém, recebi o erro IndexOutOfRangeException ao acessar campos[2].

static ContaCorrente ConverterStringParaContaCorrente(string linha)
{
// 375 4644 2483.13 Jonatan
var campos = linha.Split(' ');

var agencia = campos[0];
var numero = campos[1];
var saldo = campos[2];     // Erro apresentado - IndexOutOfRangeException
var nomeTitular = campos [3];

var resultado = new ContaCorrente(agencia, numero);
resultado.Depositar(saldoComDouble);
resultado.Titular = titular;

return resultado;

}

No começo eu achei que era por causa de espaços extras na linha, mas ao verificar o conteúdo real do arquivo, percebi que os dados não estavam separados por espaço e sim por vírgula. Por isso, o Split(' ') não estava dividindo a linha corretamente e o array ficava com menos posições que o esperado.
O código original era: var campos = linha.Split(' ');
Trecho modificado para var campos = linha.Split(',');

Depois disso, o método passou a funcionar normalmente e o erro desapareceu e consegui compilar e seguir a aula normalmente.

2 respostas

Oi, Jessica! Como vai?

Agradeço por compartilhar sua solução. Com certeza vai ajudar outras pessoas.

Continue com esse olhar atento ao testar hipóteses e validar os dados de entrada, isso fortalece muito sua lógica de programação.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Vou bem obrigada por perguntar.

Espero que você se encontre bem também.

Abraços!!