C ++异常 - 每个库或自定义一个

时间:2012-12-19 16:50:08

标签: c++ exception

我试图找出正确的方法来做到这一点。假设您正在创建一个名为Foo的新C ++库。你是否只对你库中的所有错误(FooException)有一个例外,或者人们实际上有自定义的错误:FooLoginFailedException,FooServerDownException,FooSomethingException ...

谢谢!

2 个答案:

答案 0 :(得分:3)

您应该具有特定故障的特定例外,但它们都应该从您的库的单个基本异常类型派生。这样,您的库的用户可以选择是否对特定类型的故障进行专门处理,或者只是从库中处理所有故障。例如:

class FooException : public std::exception { ... }
class FooLoginFailedException : public FooException { ... }
// ... etc ...

答案 1 :(得分:0)

这取决于异常应传达的信息,以及用户需要管理的详细信息。