异常处理:C++ 与 POSIX 风格错误处理对比
1. 异常处理示例
首先来看一个简单的异常处理示例:
if (val == 42) { throw EINVAL; } } int main() { try { myfunc(1); std::cout << "success\n"; myfunc(42); std::cout << "success\n"; } catch(int ret) { std::cout << "failure: " << strerror(ret) << '\n'; } }在这个示例中,当val等于 42 时,会抛出EINVAL异常。在main函数里,使用try-catch块来捕获异常。如果没有异常抛出,会输出success;若捕获到异常,会输出错误信息。
2. 异常处理基准测试
为了对比 C++ 异常和 POSIX 风格异常处理的性能,我们进行一个基准测试。
2.1 测试准备
需要引入以下头文件:
#include <csetjmp> #include &