Linux/Unix系统编程:异常处理、ELF格式与内存布局解析
1. C++异常处理基础
C++异常为我们提供了一种将错误返回给调用栈中某个捕获处理程序的方式。下面是一个简单的示例代码:
#include <iostream>
#include <exception>
void test(int i)
{
if (i == 42) {
throw 42;
}
}
int main(void)
{
try {
test(1);
std::cout << "attempt #1: passed\n";
test(21);
std::cout << "attempt #2: passed\n";
}
catch(...) {
std::cout << "exception catch\n";
}
}
编译运行上述代码:
g++ scratchpad.cpp; ./a.out
输出结果为:
attempt #1: passed
exception catch
在这个例子里, test() 函数接收一个输入参数。当输入值等于42时,会抛出一个异常。这会使函数返回,并且调用它的所有函数也会继续返回,直至
超级会员免费看
订阅专栏 解锁全文
7

被折叠的 条评论
为什么被折叠?



