在Windows Driver Kit (WDK)中,有一些用纯C编写的驱动程序代码示例,但是有一些try-catch-finally结构。有人知道他们的语义吗?感谢microsoft的出色工具和标准合规性。
some_file.c
的代码摘录:
try {
...
if (!NT_SUCCESS( status )) {
leave; // ???
}
...
} finally {
...
}
try {
...
} except( EXCEPTION_EXECUTE_HANDLER ) {
...
}
答案 0 :(得分:3)
WDK中的try / except处理遵循整个窗口中使用的SEH模型。请注意,您可以在捕获异常后继续。
此模型早于C ++,因此C ++标准与Win32使用的异常模型不同。
PS:C没有异常处理,因此SEH是C的非标准扩展。