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

Когда следует делать исключения для исключительных обстоятельств?

Опубликовано 19 ноября 2024 г.
Просматривать:829

When Should Exceptions Be Reserved for Exceptional Circumstances?

Исключения: зарезервированы для исключительных обстоятельств

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

Семантическое злоупотребление

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

Бремя обработки исключений

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

Утечки ресурсов и непредсказуемые состояния

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

Когнитивная сложность

滥用 исключения会增加程序的认知复杂度。开发人员需要考虑潜在的例外情况并编写处理代码, 这会使代码难以理解和维护。

Конвенция и Производительность

结构,但这种情况下非常罕见。过于频繁地抛出例外会降低程序性能,因此应将其保留用于真正罕见的和不可预测的情况。

何时有例外

基于这些考虑,只有在极少数情况下才适合使用例外:

  • 真正罕见的事件:例如,磁盘空间不足或外部服务中断。
  • 难以用返回代码或状态值表达的异常:在这种情况下,异常可以清晰地传达错误。
  • 需要从多个调用点处理的错误:在这些情况下,异常可以让错误在堆栈中传播。

在其他所有情况下, 开发者应寻求替代解决方案, 例如使用错误代码、事件或回调, 以避免滥用исключения。

Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3