对于c++中的异常处理机制本人一直不是特别理解:
一些情况下,c中的返回值不足够判断程序是否出现异常吗?
异常处理机制与c相比,它的优点是什么?
以下只是记录c++异常处理机制的一些浅显使用方法,路过的朋友对于以上疑惑有什么理解的话欢迎指点与交流。
1、基本使用
一个简单的例程及c++中的标准异常参考:
https://www.w3cschool.cn/cpp/cpp-exceptions-handling.html
2、在程序中我们可以抛出的一些异常类型
① 我们可以抛出一个对象或者变量
例如变量y为double型数据,可以
try{
throw y;//抛出异常
}catch(double){//捕获double类型的异常
}catch(float){//捕获float类型的异常
}catch(...){//捕获所以种类的异常
}
② 抛出标准异常
try {
throw std::bad_alloc();//抛出标准异常bad_alloc
}
catch (std::bad_alloc& e) {//捕获标准异常bad_alloc
}
3、自定义异常
#include <iostream>
#include <exception>
using namespace std;
struct MyException : public exception
{
const char * what () const throw ()
{
return "C++ Exception";
}
};
int main()
{
try
{
throw MyException();
}
catch(MyException& e)
{
std::cout << "MyException caught" << std::endl;
std::cout << e.what() << std::endl;
}
catch(std::exception& e)
{
//其他的错误
}
}
ps:参考资料
https://blog.csdn.net/wwlwwy89/article/details/75308967
https://www.cnblogs.com/vachester/p/7599422.html