1.异常是什么?
在 C++ 中,异常处理是一种用于处理程序运行时可能发生的错误或异常情况的机制。当某些异常情况发生时,程序可以通过抛出异常来通知调用栈,并且可以通过异常处理代码来捕获和处理这些异常。
2.检测异常的三个步骤
检查 (try) 抛出 (throw) 捕捉 (catch)
try: try 块中的代码标识将被激活的特定异常。它后面通常跟着一个或多个 catch 块。
throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。(抛出一个异常对象,异常对象可以是基本类型,也可以是类类型)
catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。 catch 关键字用于捕获异常。
try...catch语法
try
{
被检查语句
}
catch(异常处理的类型 变量名)
{
进行异常处理的语句;
}
例子1:捕捉一个异常 (注意看代码里的注释)
#include<iostream>
using namespace std;
int mydiv(int a,int b)
{if(b==0)//分母为0,说明发生了异常{cout<<"throw....."<<endl;throw b;//抛出一个异常对象,异常对象可以是基本类型,也可以是类类型。}return a/b;
}
int main()
{int a=10;int b=0;try{int result = mydiv(10,0);//因为mydiv函数可能会抛出异常,所以写在try语句块中用来捕捉异常。//如果mydiv抛出异常,会马上终止try语句块//如果mydiv没有抛出异常,会把try语句块执行完cout<<result<<endl;}catch(int e)//在catch中处理try中抛出的异常,catch()中的对象,就是try中抛出的异常对象{cout<<"catch int "<<e<<endl;}
}
例子2:捕捉多异常(注意看代码里的注释)
#include <iostream>
using namespace std;
class ExceptA//专门用来表示异常的类
{
public:void show(){cout<<"异常A"<<endl;}
};class ExceptB//专门用来表示异常的类
{
public:void show(){cout<<"异常B"<<endl;}
};int div(int a, int b)
{if(b == 0){ExceptA e;throw e;//抛出异常对象ExceptA 类型}return a/b;
}double div(double a, double b)
{if(b == 0){ExceptB e;throw e;//抛出异常对象ExceptB 类型}return a/b;
}int main()
{try{//同一时刻只能抛出一个异常div(1, 0);//当这里抛出ExceptA 类型异常时,整个try就结束了div(1.0, 0.0);}catch(ExceptA e)//专门用来处理ExceptA 类型异常的catch{e.show();}catch(ExceptB e)//专门用来处理ExceptB 类型异常的catch{e.show();}catch(...)//处理其他类型的异常{cout<<"other e"<<endl;}
}
以上就是C++异常机制的用法了,本次代码分享到此结束,谢谢大家观看,希望大家点点赞,点点关注,后续还会发布有关C++知识,谢谢!