На ум приходит несколько причин:
- Исключения не должны быть очень заметными, поскольку они предназначены для того, чтобы их можно было выбросить глубоко в недра библиотеки и поймать где-то высоко встек вызовов (даже такой же, как main ()).
Я не знаю, что вы имеете в виду под «Исключения не должны быть очень заметными».Но я согласен с тем, что улавливающие блоки должны быть редкими - и они обычно в основном.Например, неспособность открыть файл не особенно исключительна.Таким образом, по умолчанию библиотека iostream не выдает исключение, когда не удается открыть файл.
, что библиотека iostream не выдает исключения, делает его неиспользуемым.Скрытие ошибок от звонящего!Это похоже на C.
- Исключения очень дорогие, что способствует соблюдению замысла проекта.
Обычно исключения относятся к системезвонки сбой.Поскольку запись в файл или открытие файла на самом деле не являются недорогими, не стоит беспокоиться, что исключения являются дорогостоящими.Кроме того, проверка на успех обходится дороже, чем использование C ++ Exception Handling.Обычно нельзя создать блок try-catch внутри критической по времени части кода.
- Библиотеки C ++, которые генерируют исключения, не легко взаимодействуют с программами на Си.
Что такое С?Ах да - я помню - что-то, от чего я отказался в 1996 году. Помните Turbo Pascal?