在談論錯誤處理時,我有點困惑。例如,以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