0
我正在清理我的代碼並通過異常切換到錯誤處理(因爲這會在某些地方顯着縮短代碼)。通過例外來處理錯誤
這意味着我需要設計自己的異常類層次結構。
現在它看起來是這樣的:
namespace error
{
/** Generic error */
class generic : public std::except
{
public:
generic(const std::string& s) : std::except(s) {}
};
/** Namespace for network related errors */
namespace network
{
/** Generic network error */
class generic : public ::error::generic
{
public:
generic(const std::string& s) : ::error::generic(s) {}
};
/** Network timeout */
class timeout : public ::error::network::generic
{
public:
timeout(const std::string& s) : ::error::network::generic(s) {}
};
}
}
的問題是,這個看起來並不特別可讀。處理異常類的層次結構時是否有一些首選樣式?
這看起來很好。如果我是你,我只是簡單地刪除':: error'和':: error :: network',因爲在這些情況下它們不是必需的(如果我不誤讀某些東西) –
我同意@ KirilKirov說過,但我也沒有看到「泛型」類的很多理由。 –
你可能的意思是'std :: exception',而不是'except',並且它有一些你需要實現的純虛擬成員函數。確保您的異常對象符合它需要的異常保證(特別是,複製應該不會**拋出異常。具有'通用'錯誤和'通用'網絡異常似乎有點關閉... –