首页 > 编程语言 > 详细

C++标准程序读书笔记-第三章错误和异常处理

时间:2014-11-30 06:11:20      阅读:314      评论:0      收藏:0      [点我收藏+]

1.命名空间(namespace)std

C++标准程序库中的所有标示符都被定义于一个名为std的namespace

2.标准异常类别

(1)语言本身或标准程序库所抛出的所有异常,都派生自基类exception

(2)

bubuko.com,布布扣

(3)标准异常类别分为三组

  • 语言本身支持的异常
  • C++标准程序库发出的异常(派生自logic_error)
  • 程序作用域之外发出的异常(派生自runtime_error)

(4)异常类别的头文件

基础类别exception和bad_exception定义于<exception>

bad_alloc定义于<new>

bad_cast和bad_typeid定义于<typeinfo>

ios_base::failure定义于<ios>

其他异常类别都定义于<stdexcept>

3.抛出标准异常

std::string s;
...
throw std::out_of_range(s);

或者

throw std::out_of_range("out_of_range(somewhere,somehow");

4.从标准异常中派生新类别

(1)派生自exception

这种情况必须确保what()机制正常运作。what()是个虚拟函数,所以提供what()的方法之一就是自己实现what()

class MyProblem : public std::exception {
public:
	virtual const char* what() const throw() { //what() function
		...
	}
};

(2)异常类派生自上图中的标准异常(不包含exception)

class MyRangeProblem : public std::out_of_range {
public:
	MyRangeProble(const string& whatString)
		: out_of_range(whatString) {
	}
};

C++标准程序读书笔记-第三章错误和异常处理

原文:http://www.cnblogs.com/cpointer/p/4132315.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!