gpt4 book ai didi

C++ catch block - 通过值或引用捕获异常?

转载 作者:IT老高 更新时间:2023-10-28 11:58:25 25 4
gpt4 key购买 nike

Possible Duplicate:
catch exception by pointer in C++

我总是按值捕获异常。例如

try{
...
}
catch(CustomException e){
...
}

但我遇到了一些代码,它改为使用 catch(CustomException &e)。这是 a) 好的 b) 错误的 c) 灰色区域吗?

最佳答案

C++ 中异常的标准做法是...

Throw by value, catch by reference

在继承层次结构面前,按值捕获是有问题的。假设您的示例有另一种类型 MyException 继承自 CustomException 并覆盖错误代码等项目。如果抛出 MyException 类型,您的 catch block 将导致它转换为 CustomException 实例,这将导致错误代码发生更改。

关于C++ catch block - 通过值或引用捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2522299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com