Ошибки ввода/вывода с потоками надо обрабатывать не так. Давайте вспомним, погуглим и перепишем канонiчно.