try-finally
来源:互联网 发布:新奥能源怎么样 知乎 编辑:程序博客网 时间:2024/04/29 21:23
http://blog.sina.com.cn/s/blog_4ed1e0e40100awsl.html
http://blog.csdn.net/lh8350/article/details/7648408
http://www.cnblogs.com/this-543273659/archive/2011/08/08/2131268.html
http://hi.baidu.com/liobmi/item/ca2b0f0ec521dcdd73e67617
最后这货讲得相当通俗啊,俗不可耐啊,哈哈
Try-finally语句是微软对C语言做的扩展,以保证某个代码段执行中断之时程序能够执行“清除”代码。“清除”代码主要用于执行释放内存、关闭文件以及释放文件句柄等任务。如果一个函数中有多处需要进行错误检查,并且检查出错误后就需要从函数中退出,那么这时候try-finally语句就显得格外有用。
try-finally语句语法:
__try 复合语句
__finally 复合语句
__try后面的复合语句是受保护的区域。__finally后面的复合语句是终止处理语句。无论受保护区域是正常终止还是异常终止(比如goto,return,leave等),当它退出的时候,终止处理语句都要执行。
__leave在try-finally语句里有效。__leave的效果是直接跳到try-finally的结尾,立马执行终止处理语句。尽管goto语句能够达到相同的效果,但goto会导致堆栈展开( stack unwinding)。因此__leave语句更有效,因为它不包含堆栈展开。
用return语句或运行时函数longjmp退出try-finally语句属于异常终止。跳进__try语句是非法的,但跳出却是合法的。在跳离点与目的点的代码之间,所有的__finally语句都处于激活态。这就是所谓的“本地展开”。
正在执行try-finally语句的进程被杀死,那么终止处理语句将不会执行。
- try finally
- try-finally
- try---finally
- try finally
- try-finally
- finally 子句 try finally 语句
- try..catch..finally
- 趣解 try & finally
- 关于try-finally
- try-catch-finally
- try-finally 启示
- Try-catch-finally机制
- 关于try-catch-finally
- C# try catch finally
- try...catch...finally
- try-finally 启示
- try catch finally用法
- Try-Finally-Return
- poj3210
- Wince USB otg驱动中关于函数CHub::HubStatusChangeThread
- JAVA&&JAVA WEB开发包U盘封装版
- freeRdp ---- 音频输出通道扩展
- 二叉树层序遍历应用:要求将所有结点加上一个m_pNext指针,指向同层右侧的结点,右侧若无结点则指向NULL,写出其中的Connect函数。
- try-finally
- HDOJ 1711 (用KMP解决)
- rpm使用笔记
- wireshark使用
- javascript 大数值进行按位运算
- linux之安装vsftp、设置用户
- Mark Suster:破灭的共同创始人神话
- codeforces 355B Vasya and Public Transport
- 特征选择之信息增益