Почему исключения так редко используются в C ++ - PullRequest
6 голосов
/ 25 марта 2011

Я программирую на C ++ в течение 5 лет, почему я никогда не видел исключений, используемых для примера, кроме примеров?

Ответы [ 11 ]

0 голосов
/ 26 марта 2011

На ум приходит несколько причин:

  1. Исключения не должны быть очень заметными, поскольку они предназначены для того, чтобы их можно было выбросить глубоко в недра библиотеки и поймать где-то высоко встек вызовов (даже такой же, как main ()).

Я не знаю, что вы имеете в виду под «Исключения не должны быть очень заметными».Но я согласен с тем, что улавливающие блоки должны быть редкими - и они обычно в основном.Например, неспособность открыть файл не особенно исключительна.Таким образом, по умолчанию библиотека iostream не выдает исключение, когда не удается открыть файл.

, что библиотека iostream не выдает исключения, делает его неиспользуемым.Скрытие ошибок от звонящего!Это похоже на C.

  1. Исключения очень дорогие, что способствует соблюдению замысла проекта.

Обычно исключения относятся к системезвонки сбой.Поскольку запись в файл или открытие файла на самом деле не являются недорогими, не стоит беспокоиться, что исключения являются дорогостоящими.Кроме того, проверка на успех обходится дороже, чем использование C ++ Exception Handling.Обычно нельзя создать блок try-catch внутри критической по времени части кода.

  1. Библиотеки C ++, которые генерируют исключения, не легко взаимодействуют с программами на Си.

Что такое С?Ах да - я помню - что-то, от чего я отказался в 1996 году. Помните Turbo Pascal?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...