本部分介绍Microsoft C/C++优化编译器中实现的结构化异常处理的语法和用法。 编译器将以下关键字解释为结构化异常处理机制的一部分。
关键词 | 描述 |
---|---|
__try | 开始受保护的代码正文。 与 __except 关键字一起使用,以构造 异常处理程序,或与 __finally 关键字一起构造 终止处理程序。 |
__except | 仅当异常在其关联的 __try 块内发生异常时,才会开始执行的代码块。 |
__finally | 开始一个代码块,每当控制流离开其关联的 __try 块时,就会执行该代码块。 |
__leave | 允许立即终止 __try 块,而不会造成异常终止及其性能损失。 |
编译器还解释 GetExceptionCode、GetExceptionInformation,并将异常终止 函数解释为关键字,并且它们在适当的异常处理语法之外使用将生成编译器错误。 以下是这些函数的简要说明。
功能 | 描述 |
---|---|
GetExceptionCode | 返回标识异常类型的代码。 只能从筛选器表达式或异常处理程序块内部调用此函数。 |
GetExceptionInformation | 返回指向 EXCEPTION_POINTERS 结构的指针,该结构包含指向上下文记录和异常记录的指针。 只能从异常处理程序的筛选器表达式中调用此函数。 |
异常确定 | 指示在块中执行最后一个语句后,控制流是否按顺序离开关联的 __try 块。 只能从终止处理程序的 __finally 块内调用此函数。 |