浅谈C++ 标准库中的异常 —— stdexcept类

来源:互联网 发布:腾讯大数据平台优势 编辑:程序博客网 时间:2024/06/08 13:44

<stdexcept>定义了一些标准的异常类。分为两大类:逻辑错误和运行时错误。其中运行时错误是程序员不能控制的。


目录:

  • logic_error
  • runtime_error
  • throw
  • try catch

logic_error

逻辑错误都继承自logic_error

这里写图片描述

logic_error 描述 domain_error 域错误 invalid_argument 非法参数 length_error 通常是创建对象是给出的尺寸太大 out_of_range 访问超界 future_error 未知错误

runtime_error

运行时错误都继承自runtime_error

这里写图片描述

runtime_error 描述 range_error 边界错误 overflow_error 上溢 underflow_error 下溢 system_error 系统错误

throw

使用throw抛出异常。

void my_stdexcept(int val){    if (val < 0){        throw std::invalid_argument("invalid argument");    }    else{        printf("test success.\n");    }}

try catch

try函数体中,将对可能出现的异常进行捕获。catch中对捕获后的异常进一步处理。

int main(int argc, char* argv[]){    try{        my_stdexcept(-1);    }    catch (std::exception ex){        printf("exception:%s\n", ex.what());    }    return 0;}

本文源码:stdexcept

参考文献:zhangyulin54321的专栏,c++中exception和stdexcept,2017年7月16日

原创粉丝点击