对于c++中异常处理的理解及使用方法

对于c++中的异常处理机制本人一直不是特别理解:
一些情况下,c中的返回值不足够判断程序是否出现异常吗?
异常处理机制与c相比,它的优点是什么?

以下只是记录c++异常处理机制的一些浅显使用方法,路过的朋友对于以上疑惑有什么理解的话欢迎指点与交流。
1、基本使用
在这里插入图片描述
一个简单的例程及c++中的标准异常参考:
https://www.w3cschool.cn/cpp/cpp-exceptions-handling.html

2、在程序中我们可以抛出的一些异常类型
① 我们可以抛出一个对象或者变量
例如变量y为double型数据,可以

try{
	throw y;//抛出异常
}catchdouble{//捕获double类型的异常
	
}catchfloat{//捕获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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值