高性能组件(4)try-catch实现

本文主要讲try catch的实现。
面试微软会遇到。

try/catch/finally:调试,捕获,最终
try_catch用法:
比如:
连接数据库时有可能失败
try{
connect_spq(); //throw 抛出个异常
string.copy(); //函数内部抛出异常
}
catch(){
//捕获异常
}
finally(){
//不管你有没有走,这一步一定会走
}

setjmp/longjmp函数:
1、可以跨越函数的跳跃,可从函数A跳到函数B;
2、调用longjmp函数执行完后,会跳到 setjmp函数处,setjmp函数的返回值就是调用longjmp函数的第二个参数。
3、setjmp和longjmp是没有压栈的。是直接跳转的。
4、这两个函数本身是线程安全的。
代码测试使用longjmp/setjmp:

jmp_buf env;
int count = 0;


void sub_func(

你可能感兴趣的:(高性能组件,c++,linux,服务器)