除数为0,数组下边越界,文件不存在、空指针、内存不足等
C++的异常一旦抛出,如果不捕获该异常,程序直接退出
#include <iostream>using namespace std;int CHU(int a, int b){if(b == 0)return -1;elsereturn a/b;
}int main()
{int P = CHU(10, -10);if(P == -1){cout << "程序异常" << endl;}else{cout << "程序正常" << endl;}return 0;
}
C++的抛出和捕获异常:throw抛出异常;try ...... catch 捕获异常
#include <iostream>using namespace std;int CHU(int a, int b){if(b == 0)throw "ab";return a/b;
}int main()
{try{int P = CHU(10, 0);cout << "P=" << P << endl;}catch(int e){ // 只捕获int类型的异常cout << "捕获int异常e: " << e << endl;}catch(char e){ // 只捕获char类型的异常cout << "捕获char异常e: " << e << endl;}catch(...){ // 除上诉异常类型外的异常cout << "捕获其他异常" << endl;}cout << "继续运行" << endl;}
如果程序抛出异常且捕获了,那么程序可以继续运行下去
但没有用catch捕获,那么程序会出现断错误,直接中止
#include <iostream>using namespace std;class Num{
public:int num;
public:Num(int num): num(num){cout << num << "的构造函数" << endl;}~Num(){cout << num << "的析构函数" << endl;}
};
int main()
{try{Num A(1);Num B(2);Num C(3);throw -1;}catch(int e){cout << "捕获int异常:" << e << endl;}cout << "程序继续" << endl;return 0;
}
只能抛出指定的int和char异常,其他类型异常catch无法捕获。
抛出对象
抛出指针
抛出地址,记得释放
抛出引用1
抛出引用2(推荐)
注:仅学习总结
QT学习C++(15)_爱吃糖葫芦的大熊的博客-CSDN博客
QT学习C++(17)_爱吃糖葫芦的大熊的博客-CSDN博客
本文发布于:2024-02-02 07:24:31,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170682987242255.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |