在谈论错误处理时,我有点困惑。例如,以Direct2D为例。 之前,我们可以开始使用Direct2D的功能,我们必须创建一个ID2DFactory对象:关于编程中的通用错误处理的问题
HRESULT hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &d2d1Factory);
正如你可以看到从上面。我们可以检查HRESULT hr以查看我们是否成功创建了ID2DFactory。 我认为当这个调用失败时,即使我再次调用它,仍然失败。我们没有任何方法可以从此故障中恢复。
那么检查返回值有什么意义?是否可以在终止程序之前告诉用户出了什么问题?
另一个例子是内存不足。当我们遇到罕见的情况时,我们没有足够的记忆来让我们的程序“新”一些对象。 在C++中,当运行内存不足时,new运算符可能会返回NULL或引发错误。如果您没有测试它是否为NULL并且没有发现错误,那么程序将终止。我认为你的程序不能从这种情况中恢复过来。
那么,检查是否存在一个严重的错误,你无能为力?
+1,错误报告是非常重要的。简单的例子:想象一下,如果你的代码不正确,编译器会崩溃......错误报告的质量往往是底层程序质量的指标。 – 2011-03-22 18:31:32