676 ________Часть IV. Новые возможности C++
структурных исключительных ситуаций не имеет никакого понятия об объектах или типах исключительных ситуаций, он не может обработать исключительные ситуации, которые генерирует код C++; однако обработчики C++ могут обрабатывать исключительные ситуации С. Проще говоря, компилятору С неведом синтаксис обработки исключительных ситуаций C++ (try, throw и catch), но компилятор C++ поддерживает синтаксис структурной обработки исключительных ситуаций (_try, _except и _finally).
Механизм структурной обработки исключительных ситуаций, который поддерживает Borland C++, полезен, главным образом, для повышения безопасности и надежности многоязыковых программ. Однако в большинстве своем программистам C++ лучше избегать структурной обработки исключительных ситуаций.
Исследование гипотетического приложения
л До сих пор обработка исключительных ситуаций была представлена в этой главе достаточно тривиальными примерами. Однако, для того чтобы ощутить насколько глубоко обработка исключительных ситуаций может повлиять на программу в целом, необходимо что-то более реальное.
Оставшаяся часть этой главы посвящена рассмотрению гипотетического приложения ExpSum. Это приложение не слишком велико, но его размер все же достаточен для демонстрации некоторых приемов, которые вы може-ге принять на вооружение, вводя исключительные ситуации в свою повседневную практику.
Знакомство с приложением ExpSum
Задача программы ExpSum состоит в том, чтобы взять текстовый файл с информацией о расходах и вывести на экран отчет о его содержимом. В <оде обработки файла программа производит некоторый (очень ограниченный) анализ корректности полученной информации. В листинге 22.24 приведен примерный результат работы приложения ExpSum.
imployee #9264
Зеп Е. Eye
L23 Liberty Bell South Dr.
Birmingham, AL 35244