我如何使用`std :: error_category`和system_error头中的其他东西?

时间:2013-09-30 19:25:12

标签: c++ c++11 error-handling system-error

C ++中已经有足够的错误处理策略了。我们有异常处理,错误返回码和这个ERRNO混乱。 system_error标题在这里扮演什么角色?我如何使用其中的功能?对我而言,它只是随机放在一起。我使用cppreference网站作为参考。

1 个答案:

答案 0 :(得分:2)

您可以将throwcatch作为正常例外。它只是std::exception层次结构的一部分。 std::system_error扩展std::runtime_error,其范围为std::exception

什么时候应该使用?通常,它用于将C样式的ERRNO错误转换为使用封装的错误代码进行抛出和捕获处理。标准库本身大量使用它,特别是在使用特定于操作系统的东西的新库中,例如在<thread>库中。