码迷,mamicode.com
首页 > 编程语言 > 详细

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

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

标签:style   blog   http   io   ar   os   sp   文件   on   

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++标准程序读书笔记-第三章错误和异常处理

标签:style   blog   http   io   ar   os   sp   文件   on   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!