ZC:个人这样 理解 C++的异常处理:

ZC:  (1)、C++标准异常处理,try{}catch{}  抛异常:throw() [ 据说是包装的Windows函数RaiseException() ]

ZC:  (2)、VC++异常处理 __try{}__except{}  抛异常:RaiseException()  两个宏:GetExceptionCode() & GetExceptionInformation()

ZC:  (3)、CRT 包装后的异常处理

1、资料:

  1.1、C++及Windows异常处理(try,catch; __try,__finally; __try, __except)——一道笔试题引起的探究 - CSDN博客.html(https://blog.csdn.net/lishi969635/article/details/50279809

  1.2、

    try except and try catch - CSDN博客.html(https://blog.csdn.net/chief1985/article/details/2443235

    WINCE驱动常见的C++ 之try-except - 温子祺 - 博客园.html(http://www.cnblogs.com/wenziqi/archive/2010/08/26/1809074.html

  ZC:记得之前看到文章 说,VS 会修改 异常处理的处理,忘了是什么知识点了...

  ZC:  貌似是搜索“VC 崩溃 不生成 dump VS”,大概是 “使用VS2005(VC8)编译的程序,许多错误都不能在SetUnhandledExceptionFilter捕获到。这是CRT相对于前面版本的一个比较大的改变,但是很遗憾,Microsoft却没有在相应的文档明确指出。”

2、

3、测试代码:

long WINAPI FilterFunc01(char* _pcFuncName, DWORD _dwExceptionCode)
{
//return (_dwExceptionCode == STATUS_STACK_OVERFLOW) ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH; sprintf_s(g_bufLogTemp, sizeof(g_bufLogTemp),
"[%s] ==> ==> ==> [Exception] FilterFunc(...) - _dwExceptionCode : %d(0x%08X)", _pcFuncName, _dwExceptionCode, _dwExceptionCode);
RemoteLog_IndentInside_M01(g_pCommunicator->Frole, g_bufLogTemp); return EXCEPTION_EXECUTE_HANDLER;
// #define STATUS_SEGMENT_NOTIFICATION ((DWORD )0x40000005L)
//STATUS_STACK_OVERFLOW
} void SomeTestFunc()
{
__try
{
... ...
}
__except ( FilterFunc01( bufCCC, GetExceptionCode() ) )
//__except ( FilterFunc01( bufCCC, GetExceptionCode() ) )
{
//STATUS_STACK_OVERFLOW
//STATUS_ACCESS_VIOLATION ((DWORD )0xC0000005L)
//STATUS_ILLEGAL_INSTRUCTION ((DWORD )0xC000001DL)
//AnswerJustResult(pcBlock, iRst);
}// __except
}

4、

5、

异常处理.VC++的更多相关文章

  1. VC++ 异常处理 __try __except的用法

    转载:https://blog.csdn.net/jiaxiaokai/article/details/50983867 __try __except的用法: __try __except是windo ...

  2. VC++异常处理

    1.测试代码: #include <stdio.h> #include <windows.h> void main() { __try { DWORD dwDemonObj = ...

  3. C++异常处理:try,catch,throw,finally的用法

    写在前面 所谓异常处理,即让一个程序运行时遇到自己无法处理的错误时抛出一个异常,希望调用者可以发现处理问题. 异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制. 也许我们已经使 ...

  4. C++异常处理: try,catch,throw,finally的用法

    写在前面 所谓异常处理,即让一个程序运行时遇到自己无法处理的错误时抛出一个异常,希望调用者可以发现处理问题. 异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制. 也许我们已经使 ...

  5. Editplus配置VC++(1) 及相关注意事项

    下篇文章:Editplus配置VC++(2) 与/d1reportSingleClassLayout 原本用的是VC++2010 现在换成了Visual Studio 2013,editplus相关配 ...

  6. 第23章 SEH结构化异常处理(2)_编译器对系统SEH机制的封装

    23.2 编译器层面对系统SEH机制的封装 23.2.1 扩展的EXCEPTION_REGISTRATION级相关结构:VC_EXCEPTION_REGISTRATION (1)VC_EXCEPTIO ...

  7. 第23章 SEH结构化异常处理(1)_系统SEH机制

    23.1 基础知识 23.1.1 Windows下的软件异常 (1)中断和异常 ①中断是由外部硬件设备或异步事件产生的 ②异常是由内部事件产生的,可分为故障.陷阱和终止三类. (2)两种异常处理机制: ...

  8. C++中的异常处理(二)

    C++中的异常处理(二) 标签: c++C++异常处理 2012-11-24 20:56 1713人阅读 评论(2) 收藏 举报  分类: C++编程语言(24)  版权声明:本文为博主原创文章,未经 ...

  9. 在VS2008环境下的C++异常处理

    在写DAServer的过程中,一直在重视报文逻辑处理,却没有认认真真地去思考异常处理的问题.曾经我发现我在所有的报文处理函数中均没有考虑报文长度的问题,让我内心不由地捏了一把冷汗.我在新增的故障录波及 ...

随机推荐

  1. Qt QTextEdit根据行号移动光标

    QTextEdit* p = new QTextEdit; QTextBlock block = p->document()->findBlockByNumber(nLineNum); p ...

  2. JDBC和servlet设计思路、DAO模式思路、MVC思路粗略总结

    #JDBC和Servlet联合起来使用的项目思路: 说明:建库,最好一开始设置utf8字符集 step1: 在数据库中建表 如   create table t_user{ ...... } step ...

  3. await

    单个的task await task 多个await asyncio.wait(tasks)

  4. MySQL半同步安装以及参数

    MySQL半同步安装以及参数 基于MySQL5.5 官档地址: Semisynchronous Replication Administrative Interface https://dev.mys ...

  5. Django 事物

    事物 在这里指,将一些关于数据库的一系列操作,打包成一个原子性操作,意思是这一系列操作必须全部执行成功,如果,其中某个操作没有成功,那么这一系列操作都将滚回到之前没执行的状态,包括其中执行成功的某些操 ...

  6. Spring Boot(十八):使用Spring Boot集成FastDFS

    Spring Boot(十八):使用Spring Boot集成FastDFS 环境:Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0 功能:使用Spring Boot将文 ...

  7. spring boot mvc系列-静态资源配置与MappingHandler拦截器

    静态资源配置 Spring Boot 默认将 /** 所有访问映射到以下目录: classpath:/static classpath:/public classpath:/resources cla ...

  8. (4opencv)对OpenCV中“旋转”的思考和实验

    ​    我记得曾经有人对OpenCV的旋转吐槽,意思是它自己没有很好的关于选择的算法.在新的版本里面添加了这些函数(我还没有时间去看是什么时候pr的).现在一个比较棘手的问题,就是OpenCV中旋转 ...

  9. 20145325张梓靖 《网络对抗技术》 Web基础

    20145325张梓靖 <网络对抗技术> Web基础 实验内容 开启apahce,设计web前端HTML 设计web前端javascipt 设计web后端mysql 设计web后端php ...

  10. ODAC(V9.5.15) 学习笔记(四)TCustomDADataSet(2)

    2.连接相关 名称 类型 说明 Connection 指向一个数据库连接对象 Disconnected 设置为True将在数据库关闭后继续保持数据集的开启状态. 3. 数据获取 名称 类型 说明 Fe ...