(iostate — некоторого типа, п

Автор admin Среда, 13 мая 2009 11:32

(iostate — некоторого типа, преобразуемого к int; конкретный выбор зависит от компилятора), указывающую, какие состояния потоков будут порождать исключения. Если соответствующие флаги уже были установлены, исключение запускается немедленно. Конечно, чтобы использовать исключения с потоками, нужно подготовиться к их перехвату. Отсюда следует, что все операции с потоками должны выполняться внутри блока try с обработчиком ios::failure. Многие программисты считают, что это неудобно, и вручную проверяют состояние потока там, где предполагаются ошибки (в частности, предполагается, что функция bad() крайне редко возвращает true). Это другая причина, по которой механизм обработки исключений считается дополнительным, а не основным средством передачи информации об ошибках. Так или иначе, вы сами выбираете более удобный способ. По тем же причинам, по которым мы рекомендуем применять исключения для обработки ошибок в других контекстах, мы будем использовать их здесь. Файловые потоки ввода-вывода Работать с файлами при помощи потоков ввода-вывода гораздо проще и безопаснее, чем с применением библиотеки stdio языка


Комментарии закрыты.