Исключения: зарезервированы для исключительных обстоятельств
Несмотря на их распространенность, часто рекомендуется консервативное использование исключений. Углубление причин, лежащих в основе этой философии, открывает множество соображений.
Семантическое злоупотребление
Исключения, созданные для действительно исключительных ситуаций, часто неправильно используются в качестве механизмов потока управления. Это подрывает их предполагаемую семантическую функцию, поскольку не ожидается, что исключения будут вызываться в ответ на предсказуемые события, такие как неправильный ввод пользователя.
Бремя обработки исключений
Исключения нарушают работу обычный поток выполнения, требующий, чтобы среда выполнения развернула стек и собрала информацию для объекта исключения. Этот процесс требует значительных накладных расходов, особенно если исключения возникают часто или плохо обрабатываются.
Утечки ресурсов и непредсказуемые состояния
Непредвиденные исключения могут привести к потере ресурсов (таких как дескрипторы файлов или подключения к базе данных) в несогласованном состоянии или не освобождены. Это может поставить под угрозу целостность системы и создать уязвимости в системе безопасности.
Когнитивная сложность
滥用 исключения会增加程序的认知复杂度。开发人员需要考虑潜在的例外情况并编写处理代码, 这会使代码难以理解和维护。
Конвенция и Производительность
结构,但这种情况下非常罕见。过于频繁地抛出例外会降低程序性能,因此应将其保留用于真正罕见的和不可预测的情况。
何时有例外
基于这些考虑,只有在极少数情况下才适合使用例外:
在其他所有情况下, 开发者应寻求替代解决方案, 例如使用错误代码、事件或回调, 以避免滥用исключения。
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3