我開始用C++寫一些代碼,我有一個簡單的任務管理器程序我正在寫做實驗這個簡單的類方法:C++良好的錯誤處理方法
void Task::setText(string text)
{
if(text.length() > MIN_LENGTH)
{
this->text = text;
}
}
正如你所看到的,如果該方法的長度高於在我已展示的代碼上方定義的MIN_LENGHT
變量,則此方法將類text
屬性設置爲傳遞給該方法的屬性。所以我必須做一些事情,如果條件不傳遞給方法的字符串評估爲true。
在我購買的C++書籍中,錯誤處理沒有解釋,而是它只是在全球各地使用assert
。如果表達式爲false,斷言程序會中止程序,並將其作爲輸入驗證,我尋找更好的方法。
該搜索引導我到C++ exceptions。在那裏它解釋瞭如何創建一個繼承自exception
的類來創建異常。
良好的面向對象操作規範說每個類都應該獨立於程序中的其他類。那麼我應該在哪裏創建這個異常類?在同一個頭文件中,我定義了我的Task類?或者應該在task.cpp
中定義每個類的方法?
也許這是一個愚蠢的問題,但只是想要安全並從一開始就遵循一個好的軟件架構實踐。
「我沒有做你所要求的」與「你搞砸了」不一樣。傳遞的字符串太短,可能會終止程序?您首先必須決定在這種情況下呼叫方應該做些什麼。然後你可以考慮如何傳輸必要的信息。 –