C++ 中try catch的用法
时间: 2023-10-04 18:04:21 浏览: 115
C语言并没有内置的try-catch语法,但是可以通过一些技巧来实现类似的异常处理功能。
一种常见的做法是使用setjmp和longjmp函数来实现异常处理。setjmp函数可以设置一个跳转点,类似于标签,longjmp函数可以跳转到这个跳转点,从而实现异常的处理。
下面是一个简单的例子:
```c
#include <setjmp.h>
#include <stdio.h>
jmp_buf buf;
void foo(int x) {
if (x == 0) {
longjmp(buf, 1);
}
printf("x = %d\n", x);
}
int main() {
int rc = setjmp(buf);
if (rc == 0) {
foo(1);
foo(0); // will jump to setjmp
foo(2); // will not be executed
} else {
printf("caught exception\n");
}
return 0;
}
```
在上面的代码中,foo函数接收一个参数x,如果x等于0,则调用longjmp函数跳转到setjmp设置的跳转点。在main函数中,首先调用foo(1),然后调用foo(0),由于x等于0,会跳转到setjmp设置的跳转点,执行setjmp函数的下一行代码,即输出"caught exception"。最后调用foo(2)不会被执行。
阅读全文