C++异常抛出与捕获及处理
一、异常
迄今为止,我们处理程序中的错误一般都是用if语句测试某个表达式,然后处理错误的特定义代码。
C++异常机制使用了三个新的关键字 (SEH(结构化异常处理))
try ──标识可能出现的异常代码段
throw ──抛出一个异常
catch ──标识处理异常的代码段
提示:
使用异常处理将带来更多的系统开销。因此慎用异常。
二、抛出异常
throw
throw必须在 try代码块中.后边跟的值决定抛出异常的类型。
三、捕获异常
catch
出现在try代码块后,后边跟的数据决定捕获的类型
catch(...) //表示捕获所有异常
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++异常抛出与捕获及处理的更多相关文章
- [转贴] 从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开
一.程序错误 编译错误,即语法错误.程序就无法被生成运行代码. 运行时错误 不可预料的逻辑错误 可以预料的运行异常 例如: 动态分配空间时可能不会成功 打开文件可能会失败 除法运算时分母可能为0 整数 ...
- java——异常类、异常捕获、finally、异常抛出、自定义异常
编译错误:由于编写程序不符合程序的语法规定而导致的语法问题. 运行错误:能够顺利的编译通过,但是在程序运行过程中产生的错误. java异常类都是由Throwable类派生而来的,派生出来的两个分支分别 ...
- (转)spring异常抛出触发事务回滚策略
背景:在面试时候问到事务方法在调用过程中出现异常,是否会传递的问题,平时接触的比较少,有些懵逼. spring异常抛出触发事务回滚策略 Spring.EJB的声明式事务默认情况下都是在抛出unchec ...
- 在java中,异常抛出点后程序的执行情况
1.在throw语句,即自定义的抛出异常语句后面的代码并不会执行,会提示错误,编译器并不可以正常编译. 2.若在一个条件语句中抛出一个异常,程序可以编译,但不会运行(dead code). 3.若在一 ...
- Swift 中异常抛出和四种异常处理
在Swift中你可以像其他语言一样抛出异常处理异常,今天我们就详细地说说Swift中的异常抛出和处理. 在一开始我们要定义错误或者说是异常,Swift中的一些简单异常可以使用枚举定义,注意这个枚举要继 ...
- python3中try异常调试 raise 异常抛出
一.什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在Python无法正常处理程序时就会发生一个异常. 异常是Python对象,表示一个错误. 当Py ...
- python3 中的try 异常调试与 raise 异常抛出
一.什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在Python无法正常处理程序时就会发生一个异常. 异常是Python对象,表示一个错误. 当Py ...
- 编写Java程序,模拟五子棋博弈过程中的异常声明和异常抛出
返回本章节 返回作业目录 需求说明: 模拟五子棋博弈过程中的异常声明和异常抛出,判断用户所下棋子的位置,是否超越了棋盘的边界. 棋盘的横坐标的范围为0-9,纵坐标范围为0-14,如果用户所放棋子的坐标 ...
- swif-throws异常抛出
import UIKit enum VendingMachineError: Error { case invalidSelection //选择无效 case insufficientFunds(c ...
随机推荐
- Python2 unichr() 函数
描述 unichr() 函数 和 chr()函数功能基本一样, 只不过是返回 unicode 的字符. 语法 以下是 unichr() 方法的语法: unichr(i) 参数 i -- 可以是10进制 ...
- C语言訪问MySQL数据库的方法
1.加入头文件路径(MySQL安装路径中的include路径) 2.加入库文件(直接从MySQL安装路径中copy libmysql.lib就可以) 3.编程操作数据库 代码 // AccessToM ...
- (Apache)ab 压力测试 简单使用
该工具在Apache安装目录的bin目录里面.所以想要这个使用这个工具,只需要下载Apache即可.在Window环境下,推荐使用 PhpStudy 工具的集成环境.就可以轻松拥有Apache.ab压 ...
- Mark 装修建材 清单
装修攻略 介绍 装修公司:东易.龙发.金螳螂.乐豪斯乳胶漆:多乐士,立邦.三棵树.晨阳水漆.华润.都芳瓷砖:马可波罗.东鹏瓷砖.蒙娜丽莎.诺贝尔.简一瓷砖.欧神诺瓷砖.金舵瓷砖.卓远瓷砖.鹰牌.兴辉瓷 ...
- Java WebService 简单实例(转
一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 1.创建[Web Service Project],命名为[TheService ...
- django找不到模板(TemplateDoesNotExist at)的异常处理案例
一.django的渲染模板时报如下错: TemplateDoesNotExist at 二.定位问题: 1.由上面报的错.一开始以为是找不到模板(自己路径写的不对).后来发现我的路径写的是正确的. 2 ...
- INFINITY的一个坑
float a=INFINITY; if(a==INFINITY){ cout<<"a is inf"<<endl; }else{ cout<< ...
- Visual Studio 中突出显示的引用
有时候代码中处理的变量多了,看起代码来就比较的费劲,有时想看一个变量都在哪里用到了,还要一个一个的去仔细分辨. 一.VS2012本身就提供了选中提示功能 但是本身带的这个选中提示功能颜色比较浅,不过这 ...
- 黑马day18 鼠标事件&图片变大
有时候我们在淘宝网或者京东商城上浏览要购买的商品的时候当把鼠标移动到图图片上的时候会发现图片放大.然后鼠标移动,图片也会跟着移动,接下来我就使用jquery来实现这样的效果: 这是图片文件夹: < ...
- Android 常见面试题
这些面试是我之前总结的 .觉得还不错,就贴出来与大家分享一下.当中有不少问题.也是我以前被面试官问过的问题,另一些基础问题总结(既然是基础知识 ,必定是成为一名的 Android 开发者 所必须掌握的 ...