c ++ try-except语句

Ido*_*dov 4 c++ windows try-catch try-except

我看到有关检测VMWare或Virtual PC的文章
http://www.codeproject.com/KB/system/VmDetect.aspx
,我看到他们使用了某种try-except语句.
所以我在MSDN中查找了它:http://msdn.microsoft.com/en-us/library/s58ftw19%28v=vs.80%29.aspx

而我不明白为什么我会使用try-except而不是旧的try-catch.它只是给我关于例外的其他信息吗?
如果是这样,当我使用附件中的代码时,我可以使用try-catch,对吗?
谢谢 :)

Pup*_*ppy 6

__try/ __except 一个try/ catch,用于另一种异常.您可以捕获硬件异常,如浮点违规,错误指针取消引用等,而不是C++异常.这称为结构化异常处理(SEH),如果您知道要查找的位置,MSDN会有相当多的内容.

在这种情况下,他们使用它来检测无效指令.这是他们尝试执行x86不支持的指令,虚拟机使用它们的地方.如果您在真正的CPU上运行,那么您将获得无效的指令异常,如果您在虚拟机上运行,​​则只需与它通信即可.