C 中的捕获块:值与引用
在 C 中,可以选择通过值或引用捕获异常。此决定会影响代码的行为和正确性。
标准实践
C 中异常的标准实践是按值抛出并按引用捕获。
推理
按值捕获可以是存在继承层次结构时会出现问题。考虑以下示例:
class CustomException { public: int errorCode; }; class MyException : public CustomException { public: MyException() { errorCode = 5; } };
如果抛出 MyException 并按值捕获,它将转换为 CustomException 实例,导致错误代码设置为 0。这可能会导致意外行为。
通过引用捕获
通过引用捕获异常,原来抛出的异常是维护,允许准确访问异常的属性。在上面的示例中,捕获 MyException &e 可确保错误代码保持设置为 5。
何时按值捕获
在极少数情况下,按值捕获可能会更好,例如当:
建议
一般来说,强烈建议遵循按值抛出和按引用捕获的标准做法,以确保正确处理异常,特别是在继承。
以上是在 C 中通过值或引用进行捕获:何时一个比另一个更好?的详细内容。更多信息请关注PHP中文网其他相关文章!