处理程序语法

本部分介绍在 Microsoft C/C++ 优化编译器中实现的结构化异常处理的语法和用法。 此编译器将以下关键字解释为结构化异常处理机制的一部分。

关键字 说明
__try 开始代码的受保护正文。 与 __except 关键字一起用于构造异常处理程序,或者与 __finally 关键字一起用于构造终止处理程序
__except 仅当异常在关联的 __try 块内发生时,才会开始执行的代码块。
__finally 每当控制流离开关联的 __try 块时,就会开始执行的代码块。
__leave 允许立即终止 __try 块,而不会造成异常终止及其性能损失。

 

编译器还将 GetExceptionCode, GetExceptionInformation, and AbnormalTermination 函数解释为关键字,并且在适当的异常处理语法之外使用它们会产生编译器错误。 以下是这些函数的简要说明。

函数 说明
GetExceptionCode 返回标识异常类型的代码。 只能从筛选器表达式或异常处理程序块内部调用此函数。
GetExceptionInformation 返回一个指向 EXCEPTION_POINTERS 结构的指针,该结构包含指向上下文记录和异常记录的指针。 只能从异常处理程序的筛选器表达式内调用此函数。
AbnormalTermination 指示在块中执行最后一个语句后,控制流是否按顺序离开关联的 __try 块。 只能从终止处理程序的 __finally 块内调用此函数。