RaiseException

王朝百科·作者佚名  2012-05-20  
宽屏版  字体: |||超大  

该函数是用来抛出一个调用线程时发生的异常.语法void WINAPI RaiseException(

__in DWORD dwExceptionCode,

__in DWORD dwExceptionFlags,

__in DWORD nNumberOfArguments,

__in const ULONG_PTR *lpArguments );

dwExceptionCode

一个在抛出异常时应用程序定义的异常代码。 该筛选表达式和异常处理程序的异常处理程序块可以使用GetExceptionCode函数获得它的值。

请注意,系统会在显示信息之前清除dwExceptionCode参数的第28位,该位是一个系统保留的异常位,仅供系统自身使用。

dwExceptionFlags

异常标志。

这可以赋值为零,表示一个可持续异常,或者使用EXCEPTION_NONCONTINUABLE标志来表示一个不可持续的异常。

发生不可持续的异常后,任何企图继续执行的行为将导致触EXCEPTION_NONCONTINUABLE_EXCEPTION异常。

nNumberOfArguments

表示lpArguments参数数组中的参数个数。 这个值不能超过EXCEPTION_MAXIMUM_PARAMETERS。

如果lpArguments为NULL ,则忽略此参数。

lpArguments

一个参数数组。 这个参数可以是NULL。

这些参数可以包含任何应用程序所定义的数据,而这些数据需要传递给异常处理程序的筛选表达式。返回值这个函数没有返回值。备注该函数启用一个进程并使用结构化异常处理来处理私有的,软件生成的和应用程序定义的异常。

一个异常处理程序在引发异常并导致异常调度的时候需要经过以下步骤的处理:

1.如果有调试器,系统首先尝试通知进程的调试器。

2.如果这一进程不被调试,或者相关的调试器不处理异常,系统将尝试通过搜索发生异常的线程的堆栈来定位一个基于帧的异常处理程序。 系统首先会搜索当前栈帧,然后继续向后搜索栈帧。

3.如果没有找到基于帧的异常处理程序,或没有基于帧的异常处理程序处理该异常,系统将会第二次尝试通知进程的调试器。

4.如果该进程仍未被调试,或者相关的调试器不处理异常,系统以异常类型为基础提供默认的处理程序。 对于大多数异常,默认动作是调用ExitProcess函数。要求最低支持的客户端

Windows 2000专业版

最低支持的服务器

Windows 2000服务器

头文件

WINBASE.H中(包括Windows.h中)

库文件

Kernel32.lib

DLL

Kernel32.dll

[1]

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有