«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Спецификаторы исключений все еще полезны в современном C ++?

Спецификаторы исключений все еще полезны в современном C ++?

Опубликовано в 2025-04-16
Просматривать:948

Are Exception Specifiers Still Relevant in Modern C  ?

Должен ли я включать спецификаторы исключений в C?

исключения в C, позволяют функциям указать, могут ли они бросить исключения, такие как:

void foo() throw(); // guaranteed not to throw an exception
void bar() throw(int); // may throw an exception of type int
void baz() throw(...); // may throw an exception of some unspecified type

, В то время как эти спецификаторы могут передать намерение, их практическое использование сомнительно из -за нескольких факторов:

ограничения в исполнении

компилисты не строительны в соблюдении их эффективности. Идеальное поведение будет включать ошибки компиляции для нарушения спецификаций, но это не гарантируется.

суровое наказание за нарушения

Если функция нарушает спецификатор исключения, стандартное поведение заключается в прекращении программы. Этот резкий ответ не может быть желательным во всех случаях.

не согласованное обращение в средах развития

некоторые среды развития, такие как vs.net, лечить Throw (x) как throp (...), подчеркивая адгезию к стандарту. Specifiers

]

в дополнение к вышеуказанным проблемам, несколько аргументов защищают против использования спецификаторов исключения:

совместимость с шаблонами:
  • ] Указание ожидаемых исключений может ограничить эволюцию кода с течением времени.
  • ] совместимость с устаревшим кодом:
  • , работа с устаревшим кодом затрудняет прогнозирование возможных исключений, потенциально приводящее к прекращению программы. Резервирование исключений для исключительных сценариев.
  • , когда спецификаторы исключений могут быть полезны
  • Несмотря на общую рекомендацию против использования спецификаторов исключений, они все еще могут быть полезными, когда:
  • . Однако этот вариант использования редки на практике.
]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3