https://www.jb51.cc/csharp/1193377.html
编程之家收集整理的这篇文章主要介绍了Microsoft C++ 语言扩展:try-except 语句结构化异常,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Microsoft 专用
try-except 语句是一项 Microsoft C++ 语言扩展,它使应用程序能够在正常终止执行的事件发生时获取对程序的控制权。 此类事件称为异常,处理异常的机制称为结构化异常处理。
异常可能基于硬件或软件。 即使应用程序无法从硬件或软件异常中完全恢复,结构化异常处理也可以显示错误信息并捕获应用程序的内部状态,从而帮助诊断问题。 这对于无法轻松重现的间歇性问题特别有用。
try-except-statement:__try compound-statement
__except ( expression ) compound-statement
__try
子句后的复合语句是受保护节。 在 __except
子句后的复合语句是异常处理程序。 如果在控制节执行过程中引发了异常,处理程序将指定要采取的一系列措施。 执行过程如下所示:
执行受保护节。
如果在受保护节执行过程中未发生异常,则继续执行 __except
子句之后的语句。
如果在受保护节的执行过程中或受保护节调用的任何例程中发生异常,则会计算 __except
表达式,返回的值将确定该异常的处理方式。 有三个值:
EXCEPTION_CONTINUE_SEARCH
异常无法识别。 继续向上搜索堆栈查找处理程序,首先是所在的 try-except 语句,然后是具有下一个最高优先级的处理程序。
EXCEPTION_CONTINUE_EXECUTION
异常可识别,但被关闭。 从出现异常的点继续执行。
EXCEPTION_EXECUTE_HANDLER
异常可识别。 通过执行 __except
复合语句来转移对异常处理程序的控制,然后在异常发生处继续执行。
由于 __except
表达式将作为 C 表达式来计算,因此它被限制为单个值、条件表达式运算符或逗号运算符。 如果需要更大量的处理,表达式可调用返回上面列出的三个值之一的例程。
说明