虽然之前搞过一个,但准备重做一个。
1.异常到底是神马?
异常,就是程序运行期间发生的错误,不同于语法错误。也就是说是逻辑出现了问题。
大部分异常返回的常常是 RE 。
例如,c=a/0; 除0会报错
2.怎么处理这个异常?
良心的C++給我们了两个捕获方式:
1.throw
2.try
(1).throw
它抛出的通常是一个对象,对象就是捕获的异常类型,throw可以把对象抛向上一级。上一级如果仍然没有正确处理,异常对象逐级向上反馈。如果主函数仍然没有正确处理,整个程序就会崩溃掉。
举个例子:
double seek(double a,double b){
if(b==0){
throw "除数为0";
}
return a/b;
}
int main(){
int a=1,b=0;
cout<<seek(a,b);
return 0;
}
(2).try
在try块中放置抛出异常的代码:
double seek(double a,double b){
if(b==0){
throw "除数为0";
}
return a/b;
}
int main(){
int a=1,b=0;
try{
cout<<seek(a,b);
}catch(const char *e){
cout<<e;
}
return 0;
}
3.标准异常
c++給常见的异常给予了分类:
需导入头文件
#include<stdexcept>