Alex77, никогда, ни при каких условиях компьютер не ошибается. Во всех миллиардах бит в компьютере, нигде и никогда ноль случайно не станет единицей, а единица нулём.
Единичные случаи битой памяти и бракованного процессора можно не рассматривать (они как правило быстро выявляются, по постоянным крэшам, BSOD'ам и т. д.). Уж простите, не удержался, но это
Поставил два блока проверки последовательно, чтобы еще сильнее снизить вероятность прихода пустой строки.
достойно войти в анналы
Причина всех ошибок - это ошибки в программах, на том или ином уровне (прикладные, драйверы, система, прошивка и т. д.). Поэтому если вы видите ошибку в работе своей программы - не добавляйте никакие блоки "дополнительной проверки"
а просто проверяйте программу. Убедитесь, что она корректно отработает все возможные варианты входных данных и событий. И как уже сказали, цикл, выполняемый всегда 1 раз - это плохо. Нет ни одной причины, по которой можно было бы так делать.