什么是一组异常类的好设计?
我看到各种各样的东西,关于什么异常类应该和不应该做什么,但不是一个简单的设计,易于使用和扩展,做那些事情.
让1和4一起工作是我遇到的最大问题,因为任何格式化和文件输出方法都可能失败.
编辑:所以看了几个类中的异常类,并且在Neil链接的问题中,似乎通常的做法是完全忽略第1项(因此提升建议),这似乎是一个相当糟糕的想法我.
无论如何,我以为我也会发布我正在考虑使用的异常类.
class Exception : public std::exception
{
public:
// Enum for each exception type, which can also be used
// to determine the exception class, useful for logging
// or other localisation methods for generating a
// message of some sort.
enum ExceptionType
{
// Shouldn't ever be thrown
UNKNOWN_EXCEPTION = 0,
// The same as above, but it has a string that
// may provide some information
UNKNOWN_EXCEPTION_STR,
// For …Run Code Online (Sandbox Code Playgroud) 我正在开发一个项目,我们将旧的C代码重构为新的C++,我们正在使用异常进行错误处理.
我们正在为不同的模块创建不同的异常类型.
我认为这不值得,但我没有任何有效的论据来证明我的观点.因此,如果我们编写标准库,您将看到vector_exception,list_exception等.
在考虑这件事的时候,我偶然发现了这个问题:
什么时候应该创建自己的异常类型,何时应该坚持已在std库中创建的异常?
另外,如果我们采用上述方法,那么在不久的将来我们可能面临的问题是什么呢?