If an exception is caught here, then we won't have added a value to fieldPosX (or Y, below) and then on the next loop iteration, the indexing of fieldPosX will be off-by-one, and will further off for each additional Double parse error.

Do we want to add a dummy value to the list in the catch block; possibly an invalid one like Double.NaN if the code can cope with it, or null?  We can then check for this dummy value in the code above and fall back to posX[] (or Y, accordingly).