C++学习探究:异常处理(try,throw,catch)总结

本文详细介绍了C++中的异常处理机制,包括异常错误与程序设计错误的区别、C++的try, throw, catch语句的使用方法,以及异常类和标准异常的处理。通过实例展示了如何处理函数内部抛出的异常和捕获所有类型的异常,强调了异常处理在程序健壮性中的重要性。" 133306002,19673916,JavaScript数组原型:删除重复元素的方法,"['javascript', '前端开发', '编程技巧']
摘要由CSDN通过智能技术生成

异常处理(try,throw,catch)

1、异常错误和程序设计错误的区别

在这里,我们首先区分一下异常错误和程序设计错误:

  • 异常错误:在程序运行阶段由于系统异常原因而产生的错误。如果不处理异常错误。程序执行时遇到异常情况就会突然停止或者失控,使用户感到莫名其妙。
  • 程序设计错误:指程序员在设计时由于人为因素所产生的错误。如果不处理程序设计错误,程序就不能通过编译检查或者运行结果不对。

2、C++语言的异常处理方法

异常处理的功能就是将程序的运行过程从异常错误中恢复出来继续执行或者显示提示信息,使用户明白遇到了何种异常,不得不停止执行。
C++提供了一种异常处理机制,其基本思想是将异常的检测和处理分离开来,采用try,throw,catch三个关键词实现,其中throw用来抛出异常,try…catch用来捕获异常并进行异常处理。

C++处理异常之一般形式

try{
	//try Block
} 
catch(type1 arg){
	//exception handling for type1
}
...
catch(typen arg){
	//exception handling for typen
}

这里我们需要介绍一下try…catch 语句的执行过程:

  • 第一种情况:执行 try 块中的语句,如果执行的过程中,没有执行throw语句抛出异常,那么执行完后就执行最后一个 catch 块后面的语句,也就是说所有 catch 块中的语句都被跳过,不去执行
  • 第二种情况:如果 try 块执行的过程中执行throw语句拋出异常,那么拋出异常后立即跳转到第一个“异常类型”和拋出的异常类型匹配的 catch 块中执行,执行完后再跳转到最后一个 catch 块后面继续执行。

下面我们用除法运算来演示一下异常处理的一般形式,在执行本程序时,如果出现除数为0的情况,包含在try代码块中的throw语句抛出一个整型异常0,紧跟在try后面的throw语句捕获到这个整型异常并进行相应的处理。代码如下所示:

#include<iostream>
int division(double a,double b);
using namespace std;
int main(){
   
	int a,b;
	cout<<"请输入被除数和除数:";
	cin>>a>>b;
	division(a,b);
	return 0;
}
int division(double a,double b){
   
	try{
   
		if(b==0) throw 0;
		cout<<endl<<a<<"/"<<b<<"="<<(a/b)<<endl;
		
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值