Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему в языке C не предусмотрена обработка исключений?

ФермаКактусов Высший разум (211859), закрыт 1 неделю назад
Лучший ответ
Stanislav Lovelace Гений (68799) 1 неделю назад
В языке C не предусмотрена обработка исключений, потому что разработчики посчитали, что это лишние накладные расходы, которые противоречат целям языка.
В C ответственность за обработку ошибок полностью лежит на программисте. Для этого используются, например, такие механизмы:
Проверка возвращаемых значений функций. Многие системные функции, особенно те, которые взаимодействуют с файлами, сетью или другими внешними ресурсами, возвращают специальные значения. Они указывают на успех или неудачу операции.
Использование глобальной переменной errno. Она устанавливается системными функциями для указания на тип возникшей ошибки.
Обработка сигналов. Сигналы — это асинхронные уведомления о событиях: прерывании пользователем (Ctrl+C), сегментировании памяти, арифметическом переполнение. Программист может устанавливать обработчики сигналов, функции, которые будут вызываться при получении определённого сигнала.
Источник:
gitverse.ru
Остальные ответы
Сергей Гений (60593) 4 недели назад
Отлов и обработка исключений это лишние накладные расходы, что противоречит целям языка. Если в коде ядра ошибка или произошел аппаратный сбой, кто будет выполнять требуемую цепь действий, завершать работу или выдавать код ошибки?
Moon Late Мыслитель (5196) 4 недели назад
А нафига козе боян?
Более того, даже в С++ обработка исключений - это пятое колесо для телеги.
Похожие вопросы