【发布时间】:2014-08-06 14:31:58
【问题描述】:
从 cplusplus.com 对 <exception> 和 <stdexcept> 的参考资料来看,<exception> 似乎足以在 C++98 或更高版本的 C++ 中处理异常。
为什么 C++ 有两个用于异常处理的头文件?这对我的发展有何影响?我应该使用哪个标头?
【问题讨论】:
-
通过查看
的标题,我发现包含 ,然后使用哪个。 -
您查看链接到的页面了吗?正如他们所说,
<exception>定义了基类std::exception,而<stdexcept>定义了各种标准派生异常类型。<exception>对于这些类型不够。 -
没错。如果您需要
exception,请使用<exception>(例如,用于定义您自己的派生类型);如果您需要其中定义的类型,请使用<stdexcept>。通常,当您需要该标头的内容时,请包含该标头。 -
我一直认为这两个标题有特别糟糕、令人困惑和模棱两可的名字。
-
@Cubbi:大概,因为这与异常无关。问题是关于定义异常类型的两个标题。
标签: c++ c++11 exception-handling