microsoft windows驱动程序套件纯C尝试捕获语法?

时间:2010-05-31 14:48:22

标签: c try-catch wdk

Windows Driver Kit (WDK)中,有一些用纯C编写的驱动程序代码示例,但是有一些try-catch-finally结构。有人知道他们的语义吗?感谢microsoft的出色工具和标准合规性。

some_file.c的代码摘录:

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

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

try  {
    ...
} except( EXCEPTION_EXECUTE_HANDLER ) {
    ...
}

1 个答案:

答案 0 :(得分:3)

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

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

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

SEH exception handling in the MSDN

Introduction to SEH