异常基本语法

异常思想
在这里插入图片描述
基本语法:
在这里插入图片描述
1) 若有异常则通过 throw 操作创建一个异常对象并抛掷。
2) 将可能抛出异常的程序段嵌在 try 块之中。控制通过正常的顺序执行到达 try 语句,然后执行 try 块内的保护段。
3) 如果在保护段执行期间没有引起异常,那么跟在 try 块后的 catch 子句就不执行。程序从 try 块后跟随的最后一个 catch 子句后面的语句继续执行下去。
4) catch 子句按其在 try 块后出现的顺序被检查。匹配的 catch 子句将捕获并处理异常(或继续抛掷异常)。
5) 如果匹配的处理器未找到,则运行函数 terminate 将被自动调用,其缺省功能是调用 abort
终止程序。
6) 处理不了的异常,可以在 catch 的最后一个分支,使用 throw 语法,向上扔。

#include <iostream>
using namespace std;
//1.异常可以跨函数
//2.异常可以继续抛出 如果始终不做任何处理 程序中断
void divideData(int i, int j) {
	if (j == 0) {
		throw i;
	}
	cout << "i / j= " << i / j << endl;
}
//发生异常直接跨函数
void divideObj(int i, int j) {
	divideData(i, j);
}
void divideObj2(int i,int j) {
	try {
		divideData(i, j);
	}
	catch (int e) {
		cout << "continue throw " << endl;
		throw; //继续抛出不做处理
	}
}

int main1() {
	try {
		divideData(100, 2);
		divideData(10, 0);
	}
	catch (int e) {
		cout << " e " << "divide 0" << endl;
	}
	system("pause");
	return 0;
}
int main2() {
	try {
		//发生异常跨函数 
		divideObj(100, 0);
	}
	catch (int e) {
		cout << " e " << "divide 0" << endl;
	}
	system("pause");
	return 0;
}

int main() {
	try {
		divideObj2(10, 0);//函数继续抛出异常 main函数如果不作任何处理 程序报错
	}
	catch(int e){
		cout << "main method process ---" << endl;
	}
	system("pause");
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值