【发布时间】:2010-11-01 13:58:35
【问题描述】:
我们都知道抛出异常指针是不好的:
try
{
...
throw new MyExceptionClass();
}
catch (MyExceptionClass* e)
{
...
}
您用什么方法清理遗留代码中的 catch 目标?我认为我可以通过将operator new 设为私有来修复第一部分:
class MyExceptionClass
{
public:
...
private:
void* operator new(size_t);
}
我怎样才能在编译时使事情的捕获面同样丑陋?我不想只是让它落入catch (...) 领域。
【问题讨论】:
-
您允许更改多少代码/are/?理想情况下,您将更改抛出代码和捕获代码,并完成它。但当然,事情可能没有那么简单。
-
这部分是为了找到我们进行更改的地方;当我们开始着手处理这个问题时,我们可以 100% 控制我们可以更改哪些代码。