异常处理(错误处理)

异常可能由硬件或软件所启动,并且可以在内核模式和用户模式代码中发生。 结构化异常处理功能将提供用于处理内核模式和用户模式异常的单一机制。

执行某些指令序列可能会导致硬件启动的异常。 例如,当进程尝试读取或写入其没有相应访问权限的虚拟地址时,硬件会产生访问冲突。

需要异常处理的事件也可能会在软件例程执行期间发生(例如,指定无效的参数值时)。 发生这种情况时,线程可以通过调用 RaiseException 函数显式启动异常。 此函数使调用线程能够指定描述异常的信息。

异常可以是连续的,也可以是不可控制的。 当事件在硬件中不可连续或者延续没有意义时,会引起不可连续的异常。 不可连续的异常不会终止应用程序。 因此,应用程序或许可以捕获异常并运行。 但是,由于堆栈损坏或其他严重问题,通常会引起不可连续的异常,因此难以从异常中恢复。