异常处理——异常处理简介之UnhandledExceptionFilter(1)
来源:互联网 发布:edg那个知恩是谁 编辑:程序博客网 时间:2024/06/06 07:32
1.异常处理流程
在软件开发过程中,总会遇到许许多多的bug。如果在开发过程中,出现bug异常,未处理,就会导致程序崩溃。崩溃了,系统会先自动先去处理,一般是UnhandledExceptionFilter这个函数在调试。
//未处理异常示例*(int *)0 = 1 ; //语句错误,未处理
一些处理异常的返回值
EXCEPTION_CONTINUE_SEARCH(0)(作为返回值,表示处理失败,系统继续找其他异常处理器)
EXCEPTION_CONTINUE_EXECUTION(1)(作为返回值,表示异常已处理,恢复中断的代码)
EXCEPTION_EXECUTE_HANDLER(-1)(作为返回值,一般表示退出进程或者线程)
未处理异常分类
内核态的未处理异常(发生在驱动程序等内核态模块中的未处理异常)
用户态的未处理异常(发生在应用程序中的未处理异常)
Windows对未处理异常的机制
对于内核态的未处理异常:系统内核调试器调试,失败后蓝屏
对于用户态的未处理异常:应用程序代码执行代码内异常处理,如果代码没有异常处理,则使用windows默认异常处理器处理(默认为SEH异常处理器)
异常处理器
jit调试
2.常用的错误处理方法:
1.返回值判断。 返回正确和错误,缺点,返回值有可能被忽略
2.全局状态标志判断。设定正确和错误标志树形。缺点:多个线程为全局变量赋值,导致混乱
3.setjmp()/longjmp(),类似goto语句
4.try/throw/catch,异常处理
结论
只要在顶层异常函数设置我们自己的函数,就可以用自己的异常处理方式来处理。就像QQ奔溃弹出来的说他已经奔溃,让你发送错误报告这种框架。
0 0
- 异常处理——异常处理简介之UnhandledExceptionFilter(1)
- 详解Java异常处理——简介
- 实例简介异常处理
- 简介C++ 异常处理
- 异常处理——异常函数之SetUnhandledExceptionFilter(父进程处理)(2)
- 异常处理——异常函数之SetUnhandledExceptionFilter(子进程处理)(3)
- JAVA学习笔记25——异常机制1:Exception简介+异常处理的try_catch_finally方法
- springMVC—异常处理
- Javase—异常处理
- 异常处理(1)
- JAVA异常之异常处理
- Python异常处理体系简介(1)
- JAVA——异常及异常处理
- php异常处理—多个异常
- php异常处理—重新抛出异常
- C++之异常处理
- java之异常处理
- python之异常处理
- linux之线程属性(分离线程)
- 关于listview上下滑动imageview图片混乱问题
- 单例设计模式
- 个人静态blog
- shell中的命令替换
- 异常处理——异常处理简介之UnhandledExceptionFilter(1)
- 贪心算法
- 通过反射访问构造方法(学习笔记)
- Laravel5遇到的问题以及解决方案 -- PDOException SQLSTATE[HY000] [2002] No such file or directory
- Spring MVC集成Tiles3
- 宽度优先搜索
- jstl自定义函数的使用
- 基于QT的TCP协议实现的通信小程序
- bootstrap-table插件实现ajax服务端分页显示