SEH,Structured Exception Handling(结构化异常处理),包括两种类型:一是Termination Handling,即终止处理;另一个是Exception Handling。本文主要介绍Termination Handling,而对于Exception Handling,我倾向选择使用C++的exception机制代替。
一、Advantages of Termination Handling
1,清理工作集中在一个地方执行,并且保证能得到执行,从而简化了错误处理。
(一种好的资源管理方式,比如:文件、内存、句柄等)
2,提高代码可读性。
(避免了正常流程代码和错误处理代码的交缠)
3,让代码更易维护。
(错误处理代码集中在一个地方维护或修改)
4,如果正确使用,它们对程序性能和体积的影响是微小的。
(后面将展示它的使用规则)
二、TH的三个关键字
VC/C++编译器支持TH相关的关键字:__try __finally __leave
1,try块
包裹待保护的代码块
2,finally函数
可以将它当作一个函数看。不论try块中的代码是正常执