新的from_chars
函数使用errc
而不是抛出异常。动机是:
为什么我们不在解析错误上抛出异常?有两个原因:异常带来成本(特别是抛出时),解析错误不是特殊情况。
其他函数如stoi
会抛出异常而stream会同时执行这两个函数(使用io_errc
中编码的信息抛出异常)。使用相同的参数,stoi
也不应该抛出异常,尽管它遵循使用std::out_of_range
的惯例。 C ++的未来是否愿意尽可能使用errc
而不是异常?有什么方法我更喜欢吗?
答案 0 :(得分:0)
STL不会返回timeout
它使用例外。
此外,抛出异常会产生成本。检查函数的返回值总是需要花费一些东西。
通常看起来异常是处理错误的标准方法,默认情况下应该使用IMO。
您可以在此处阅读一些信息http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0364r0.pdf
另外,您可以阅读这些内容http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Re-throw