我试图找出正确的方法来做到这一点。假设您正在创建一个名为Foo的新C ++库。你是否只对你库中的所有错误(FooException)有一个例外,或者人们实际上有自定义的错误:FooLoginFailedException,FooServerDownException,FooSomethingException ...
谢谢!
答案 0 :(得分:3)
您应该具有特定故障的特定例外,但它们都应该从您的库的单个基本异常类型派生。这样,您的库的用户可以选择是否对特定类型的故障进行专门处理,或者只是从库中处理所有故障。例如:
class FooException : public std::exception { ... }
class FooLoginFailedException : public FooException { ... }
// ... etc ...
答案 1 :(得分:0)
这取决于异常应传达的信息,以及用户需要管理的详细信息。