コードをクリーンアップし、例外によるエラー処理に切り替えています (これにより、いくつかの場所でコードが大幅に短縮されるため)。
これは、例外クラスの独自の階層を設計する必要があることを意味します。
現在、次のようになっています。
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) {}
};
}
}
問題は、これが特に読みにくいように見えることです。例外クラスの階層を処理する際に好ましいスタイルはありますか?