C++抛出异常和捕获异常
2014-10-10 23:56
281 查看
一、异常
迄今为止,我们处理程序中的错误一般都是用if语句测试某个表达式,然后处理错误的特定义代码。
C++异常机制使用了三个新的关键字 (SEH(结构化异常处理))
try ──标识可能出现的异常代码段
throw ──抛出一个异常
catch ──标识处理异常的代码段
提示:
使用异常处理将带来更多的系统开销。因此慎用异常。
二、抛出异常
throw
throw必须在 try代码块中.后边跟的值决定抛出异常的类型。
三、捕获异常
catch
出现在try代码块后,后边跟的数据决定捕获的类型
catch(...) //表示捕获所有异常
迄今为止,我们处理程序中的错误一般都是用if语句测试某个表达式,然后处理错误的特定义代码。
C++异常机制使用了三个新的关键字 (SEH(结构化异常处理))
try ──标识可能出现的异常代码段
throw ──抛出一个异常
catch ──标识处理异常的代码段
提示:
使用异常处理将带来更多的系统开销。因此慎用异常。
二、抛出异常
throw
throw必须在 try代码块中.后边跟的值决定抛出异常的类型。
三、捕获异常
catch
出现在try代码块后,后边跟的数据决定捕获的类型
catch(...) //表示捕获所有异常
<pre name="code" class="cpp">#include "stdafx.h" #include <malloc.h> int _tmain(int argc, _TCHAR* argv[]) { int a,b; a=333; b=0; try { if (b==0) { //错误处理 throw "出错,除数为0"; // throw 111.0; } printf("%d",a/b); } catch(char *s) { //错误处理 } catch (int i) { //整型错误代码处理 } catch(...) { //所有异常类型 } getchar(); return 0; }
相关文章推荐
- 从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开
- Jni C/C++运行时遇到异常怎么办?捕获与抛出
- C++中可获得抛出位置和捕获位置的异常类
- C++异常处理:抛出异常throw,捕获异常catch(...)
- [转贴] 从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开
- C++ 抛出并捕获多个异常
- jni异常,c++抛出异常,java捕获
- C++异常抛出与捕获及处理
- 从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开
- 讨论该如何抛出C++异常以及捕获异常?
- C++中自定义异常的抛出与捕获
- C++异常抛出与捕获及处理
- C++异常抛出与捕获及处理
- C++的异常抛出与捕获
- 三层架构开发中,数据层的异常在哪个层捕获?用抛出异常来表示返回信息好么?
- C++ 对象的成员函数中抛出的异常
- C++能否抛出一个不是继承自std::exception的异常
- More Effective C++:通过引用捕获异常(转)
- 二十一天学通C++之使用try/catch捕获异常
- C++ 异常 与 ”为什么析构函数不能抛出异常“ 问题