结构化异常处理和c++异常处理区别

结构化异常处理和c++异常处理区别

ID:20548068

大小:29.50 KB

页数:5页

时间:2018-10-13

结构化异常处理和c++异常处理区别_第1页
结构化异常处理和c++异常处理区别_第2页
结构化异常处理和c++异常处理区别_第3页
结构化异常处理和c++异常处理区别_第4页
结构化异常处理和c++异常处理区别_第5页
资源描述:

《结构化异常处理和c++异常处理区别》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、结构化异常处理和C++的异常处理区别结构化异常处理和C++的异常处理区别Windows异常由系统内核代码捕获,然后传递至用户层,多用于非法内存访问、指令错误等,其类型是CPU定义的,参见《X386保护模式编程》。C++异常是C++编译器生成的结构(多在堆栈上),是普通的用户层代码,异常类型由用户自定义。由于Windows异常处理和C++异常处理均使用堆栈展开,在局部堆栈的使用中存在冲突,一般不能混用。__try{}__finally{}不会检查类内析构以及构造等操作但是try()catch()不会存在这样的问题但

2、是C++编译器上的所以异常类型需要你自己定义。__try{......}__except(EXCEPTION_EXECUTE_HANDLER){wprintf(GetExceptionDescribe(GetExceptionCode()));}#pragmaoncetypedefstructtagExcpCode{DWORDdwCode;LPTSTRlpDescribe;}EXCPCODE,*PEXCPCODE;EXCPCODEg_excp_table[]={EXCEPTION_ACCESS_VIOLATION

3、,_T("Thethreadattemptstoreadfromorwritetoavirtualaddressforwhichitdoesnothaveaccess."),EXCEPTION_ARRAY_BOUNDS_EXCEEDED,_T("Thethreadattemptstoaccessanarrayelementthatisoutofbounds,andtheunderlyinghardwaresupportsboundschecking."),EXCEPTION_BREAKPOINT,_T("Abre

4、akpointisencountered."),EXCEPTION_DATATYPE_MISALIGNMENT,_T("Thethreadattemptstoreadorwritedatathatismisalignedonhardwarethatdoesnotprovidealignment.Forexample,16-bitvaluesmustbealignedon2-byteboundaries,32-bitvalueson4-byteboundaries,andsoon."),EXCEPTION_FLT_

5、DENORMAL_OPERAND,_T("Oneoftheoperandsinafloatingpointoperationisdenormal.Adenormalvalueisonethatistoosmalltorepresentasastandardfloatingpointvalue."),EXCEPTION_FLT_DIVIDE_BY_ZERO,_T("Thethreadattemptstodivideafloatingpointvaluebyafloatingpointdivisorof0(zero)

6、."),EXCEPTION_FLT_INEXACT_RESULT,_T("Theresultofafloatingpointoperationcannotberepresentedexactlyasadecimalfraction."),EXCEPTION_FLT_INVALID_OPERATION,_T("Afloatinpointexceptionthatisnotincludedinthislist."),EXCEPTION_FLT_OVERFLOW,_T("Theexponentofafloatingpo

7、intoperationisgreaterthanthemagnitudeallowedbythecorrespondingtype."),EXCEPTION_FLT_STACK_CHECK,_T("Thestackhasoverflowedorunderflowed,becauseofafloatingpointoperation."),EXCEPTION_FLT_UNDERFLOW,_T("Theexponentofafloatingpointoperationislessthanthemagnitudeal

8、lowedbythecorrespondingtype."),EXCEPTION_GUARD_PAGE,_T("ThethreadaccessedmemoryallocatedwiththePAGE_GUARDmodifier."),EXCEPTION_ILLEGAL_INSTRUCTION,_T("Thethreadtriestoexecuteaninvalidinst

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。