微软Windows驱动程序套件纯C try catch语法?

cly*_*yfe 2 c try-catch wdk

Windows 驱动程序工具包 (WDK)中,有一些用纯 C 编写的驱动程序代码示例,但散布着一些 try-catch-finally 结构。有人知道它们的语义吗?感谢微软提供的出色工具和标准合规性。

代码摘录自some_file.c

try {
    ...
    if (!NT_SUCCESS( status )) {

       leave; // ???
    }
    ...
} finally {
    ...
}

try  {
    ...
} except( EXCEPTION_EXECUTE_HANDLER ) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*her 5

WDK 中的 try/ except 处理遵循整个 Windows 中使用的 SEH 模型。请注意,您可以在捕获异常后继续。

该模型早于 C++,因此 C++ 标准与 Win32 使用的异常模型不同。

PS:C 没有异常处理,因此 SEH 是 C 的非标准扩展。

MSDN 中的 SEH 异常处理

SEH简介