Я программирую на C ++ около 5 лет, почему я никогда не видел, чтобы исключения использовались для примера, кроме примеров?
Мне очень любопытно,Мне очень интересно об этом с 1996 года. Иногда я думаю, что в 1996 году обработка исключений в C ++ произвела революцию в том, как я пишу программное обеспечение.Я помню, что я читал об обработке исключений в C ++ и сразу понял последствия.Через несколько минут я проверял, что происходит, если из конструктора выдается исключение.Я думаю, что компиляторы для UNIX не были готовы к обработке исключений C ++ до G ++ 3.0 (где это было?).Деструкторы были вызваны для не сконструированных областей памяти (в стеке) (в случае какого-то исключения было выброшено).Деструкторы не были вызваны для успешно построенных объектов (в стеке) (в случае какого-то исключения было выброшено).delete не вызывалось в случае, если объект, созданный с new, бросил исключение из конструктора.Компиляторы для Windows и OS / 2 были готовы в 1996/1997.Они работали.Я помню Borland C ++ для OS / 2 и IBM CSet2 и Windows Visual C ++.
Наконец-то появился способ прервать построение объекта.Наконец, можно выделить объект внутри конструктора И положиться на успешное построение этого объекта в каком-то другом конструкторе.Как-то я узнал обо всех правилах.Не из книг!Спустя годы вышли книги, утверждающие, что обработка исключений в C ++ - это хороший способ отловить ошибки массива или другие проблемы, для которых я никогда не переставал использовать assert.Наконец, появился простой способ предоставить вызывающей стороне сложную информацию о некоторой ошибке, не полагаясь на stderr.Наконец, не нужно было отлаживать какую-то сложную часть программного обеспечения, чтобы выяснить, в чем дело.
Я не могу воспринимать людей всерьез, которые не используют C ++ Exception Handling.Невозможно проверить каждый ошибочный звонок.Невозможно достичь того же уровня качества программного обеспечения без использования C ++ Exception Handling.Почему таких людей все еще нанимают?Почему все еще существуют платформы, которые не предоставляют C ++ Exception Handling.Я бы никогда не подумал о написании программного обеспечения для такой платформы, так же, как я отказался бы от написания сложного приложения в ассемблерном коде.