【从 C 向 C++ 进阶】- 对 C 的语法拓展 - 异常处理

1. C++ 新增的异常处理

在 C++ 中新增了异常处理语法 try-catch,try 语句处理正常代码逻辑,catch 语句处理异常情况,通过 throw 语句可以抛出异常信息然后由相对应的 catch 语句处理。具体语法如下:

try
{
   
    ...
}
catch
{
   
    ...
}

需要注意的是,throw 语句会由于发生地方的不同而表现出不同的异常抛出情形,具体遵循以下规则:

  • 当 throw 语句发生在 try 语句中,所抛出的异常只能命中同作用域中的 catch 语句,同时 catch 语句必须定义在 try 语句之后且两语句之间不能定义任何表达式。
  • 当 throw 语句发生在非 try 语句时,会立即结束当前函数,并带着异常信息返回函数的调用处,由上一级函数处理该抛出的异常。
  • 实验:
void fun()
{
   
	try
	{
   
		throw 1;
	}
	catch(...)
	{
   
		cout << "in fun:1" << endl;
	}
	
	try
	{
   
		throw 1;
	}
	catch(...)
	{
   
		cout << "in fun:2" << endl;
		throw 1;
	}
	
	try
	{
   
		throw 1;
	}
	catch(...)
	{
   
		cout << "in fun:3" << endl;
		throw 1;
	}
}

void tmp()
{
   
	fun();
	cout << "in tmp()" << endl;
}

int main(void)
{
   
	try
	{
   
		tmp();
	}
	catch(...)
	{
   
		cout << "in main" <&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值