Per analizzare più a fondo la situazione, il codice che hai riportato è insufficiente.

Si dovrebbe vedere cosa accade prima e dopo, ispezionare il resto del codice, soffermarsi ad esaminare il valore delle variabili in gioco quando si verifica l'eccezione e così via...