C++——异常处理机制

本文介绍了C++的异常处理机制,包括异常处理概述和处理方法。异常处理通过try、throw和catch语句实现,允许在函数执行期间遇到异常时不立即处理,而是逐级上传,提高程序的健壮性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 异常处理概述

       ~~~~~~       程序中常见的错误分为两类:编译时的错误和运行时的错误,编译的错误主要是语法错误,运行的错误中有些是不可预料的,有些虽然可以预料却无法避免。程序运行过程中的错误统称为异常,对异常的处理称为异常处理。传统的异常处理机制无法保证程序的可靠运行,而且采用判断或分支语句处理异常的方法不适合大量异常的处理,更不能处理不可预知的异常。C++提供的异常处理机制逻辑结果非常清晰,而且在一定程度上可以保证程序的健壮性。

二. 异常处理的方法

       ~~~~~~       C++处理异常的办法是:如果在执行一个函数过程中出现异常,可以不在本函数中立即处理,而是发出一个信息,传给它的上一级(即调用函数)来解决,如果上一级函数也不能处理,再传递给上一级,由上一级处理。如此逐级上传,如果到最高一级还无法处理,运行系统一般会自动调用系统函数 terminate,由它调用 abort 终止程序。
       ~~~~~~       这样的异常处理方法使得异常的引发和处理机制分离,而不是由同一个函数完成。这样做法的好处是使底层函数(被调用函数)着重用于解决实际任务,而不必过多地考虑对异常的处理,以减轻底层函数的负担,而是把处理异常的任务上移到上层去处理。
       ~~~~~~       C++处理异常的机制由检查,抛出和捕获3个部分组成,分别由3种语句来完成:try(检查),throw(抛出)和 catch(捕获)

1. 异常的抛出

抛出异常常用 throw 语句,其格式如下:

throw 表达式

如果在某段程序中发现了异常,就可以使用 throw 语句抛出这个异常给调用者,该异常由与之匹配的 catch 语句来捕获。

int Div(int x, int y)
{
	if(y == 0)
		throw y;		// 抛出异常,当除数y为0时,语句throw将抛出int型异常
	return x / y;       // 当除数y不为0时,返回x/y的值 
}

2. 异常的检查和捕获

异常的检查和捕获使用 try 语句和 catch 语句,格式如下:

try
{
	被检查的复合语句
}
catch(异常类型声明 1)
{
	进行异常处理的复合语句 1
}
catch(异常类型声明 2)
{
	进行异常处理的复合语句 2
}
.
.
.
catch(异常类型声明 n)
{
	进行异常处理的复合语句 n
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值