sexta-feira, junho 16, 2006

ASP.NET Index and length must refer to a location within the string. Parameter: Length

Estamos na fase de testes da extranet elaborada para um cliente e um erro aconteceu logo no primeiro teste do cliente. Já me tinham dito que para testar, nunca pode ser o programador a faze-lo, pois temos tendência inconsciente de não testar o que provavelmente poderia gerar erro.

Pois o erro aconteceu e desde logo foi corrigido. No meu caso, uso muitas chamadas a subtrings que permite retirar caracteres de uma dada expressão. Um deles não estava a testar o tamanho da string antes de retirar a porção definida. Logo, quando apanhava uma expressão mais pequena do que o numero de carecteres que mandava retirar este gerava um erro.

If imovelbi.ToString.Length > 58 Then
imovelbi2 = imovelbi.ToString().Substring(0, 58)
Else
imovelbi2 = imovelbi
End If


Impus a condição anterior de apenas fazer substring até 58 caracteres se realmente tiver mais de 58 caracteres.

Sem comentários: