C++ exception类:C++标准异常的基类

Posted C语言学习联盟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ exception类:C++标准异常的基类相关的知识,希望对你有一定的参考价值。


C++语言本身或者标准库抛出的异常都是 exception 的子类,称为标准异常(Standard Exception)。你可以通过下面的语句来捕获所有的标准异常:

    
      
      
    
  1. try{

  2. //可能抛出异常的语句

  3. }catch(exception &e){

  4. //处理异常的语句

  5. }

之所以使用引用,是为了提高效率。如果不使用引用,就要经历一次对象拷贝(要调用拷贝构造函数)的过程。

exception 类位于 <exception> 头文件中,它被声明为:
    
      
      
    
  1. class exception{

  2. public:

  3. exception () throw();  //构造函数

  4. exception (const exception&) throw();  //拷贝构造函数

  5. exception& operator= (const exception&) throw();  //运算符重载

  6. virtual ~exception() throw();  //虚析构函数

  7. virtual const char* what() const throw();  //虚函数

  8. }

这里需要说明的是 what() 函数。what() 函数返回一个能识别异常的字符串,正如它的名字“what”一样,可以粗略地告诉你这是什么异常。不过C++标准并没有规定这个字符串的格式,各个编译器的实现也不同,所以 what() 的返回值仅供参考。

下图展示了 exception 类的继承层次:
C++ exception类:C++标准异常的基类
图:exception 类的继承层次以及它们所对应的头文件

先来看一下 exception 类的直接派生类:

C++ exception类:C++标准异常的基类


 logic_error 的派生类: 
C++ exception类:C++标准异常的基类

runtime_error 的派生类:  

小编整理了一套C语言学习资料,需要的话可以私信@C语言学习联盟回复领取资料即可,欢迎大家关注,有时间会及时分享相关技术博文,你的关注和点赞对小编都很重要,谢谢各位动动发财的手指点点关注啦~

以上是关于C++ exception类:C++标准异常的基类的主要内容,如果未能解决你的问题,请参考以下文章

python所有的标准异常类:

python所有的标准异常类:

python所有的标准异常类

python异常

Python异常类型

C++学习41 exception类