处理程序语法

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

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

 

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

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