使用 结构化异常处理(SEH)可以增加程序的健壮性,因为这个机制可以保证我们的程序在运行的过程中,如果出现了问题,系统会捕获这个问题异常,并通知到程序,程序就可作相应的处理。SEH包含两方面的功能:终止处理和异常处理。
终止处理程序的语法如下:
__try
{
//Guarded body
......
}
__finally
{
//Termination handler
.....
}
其中,__try段标记了被保护代码,__finally段标记了终止处理程序。 操作系统和编译协同工作保证了不管被保护代码部分是如何退出 的(无论是return,goto , ExitProcess, ExitThread, TerminateProcess, TerminateThread来终止进程或线程),__finall代码块都会被执行到。
异常处理程序的语法如下:
__try
{
//Guarded body
......
}
__except(exception filter)
{
//Exception handler
.....
}
当一个硬件或软件异常被抛出时,操作系统会给应用程序一个查看异常类型的机会,并允许应用程序自己处理这个异常。
任何一个__try块后面必须跟一个__finally代码块或__except代码块,但不能同时有__finally块和__except块,也不能有多个__finally块或多个__except块。 但是可以嵌套。