这个问题已经在这里有了答案:
已关闭8年。
我总是按值(value)捕捉异常。例如
try{
...
}
catch(CustomException e){
...
}
但是我遇到了一些带有
catch(CustomException &e)
的代码。这是a)很好b)错误c)是灰色区域吗? 最佳答案
C++中的异常(exception)情况的标准做法是...
面对继承层次结构,按值(value)捕获是有问题的。对于您的示例,假设还有另一种MyException
类型,它从CustomException
继承并覆盖诸如错误代码之类的项。如果抛出了MyException
类型,则catch块将导致将其转换为CustomException
实例,这将导致错误代码更改。