Exceptions: Reserved for Exceptional Circumstances
Despite their prevalence, the conservative use of exceptions is often advocated. Delving into the reasons behind this philosophy reveals a myriad of considerations.
Semantic Abuse
Exceptions, designed for truly exceptional situations, are often misused as control flow mechanisms. This undermines their intended semantic function, as exceptions are not expected to be raised in response to foreseeable events like incorrect user input.
The Burden of Exception Handling
Exceptions disrupt the normal flow of execution, requiring the runtime to unwind the stack and gather information for the exception object. This process incurs significant overhead, especially if exceptions are thrown frequently or handled poorly.
Resource Leaks and Unpredictable States
Unanticipated exceptions can leave resources (such as file handles or database connections) in an inconsistent state or unfreed. This can compromise system integrity and introduce security vulnerabilities.
Cognitive Complexity
滥用 exceptions 会增加程序的认知复杂度。开发人员需要考虑潜在的例外情况并编写处理代码,这会使代码难以理解和维护。
Convention and Performance
在一些情况下,使用例外确实可以简化代码结构,但这种情况下非常罕见。过于频繁地抛出例外会降低程序性能,因此应将其保留用于真正罕见的和 不可预测的情况。
何时有例外
基于这些考虑,只有在极少数情况下才适合使用例外:
在其他所有情况下,开发者应寻求替代解决方案,例如使用错误代码、事件或回调,以避免滥用 exceptions。
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3