博客
关于我
浅谈C++ 标准库中的异常 —— stdexcept类
阅读量:305 次
发布时间:2019-03-04

本文共 771 字,大约阅读时间需要 2 分钟。

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


目录:

 

 

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");    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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;}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

你可能感兴趣的文章
整型关键字的散列映射
查看>>
多位水仙花数-python(出现运行超时?不妨用减法计算)
查看>>
地下迷宫探索(后两个测试点无法通过?这里有你想要的答案)
查看>>
小白看完都会了!阿里云大师深入拆解Java虚拟机,看完这一篇你就懂了
查看>>
VBA之正则表达式(19)-- 相对引用转绝对引用
查看>>
巧用VBA统一数字单位
查看>>
Transpose实现数组行列转置的限制
查看>>
用float/double作为中转类型的“雷区”
查看>>
golang中interface的一些语法缺陷的改进
查看>>
vue-router路由 学习笔记
查看>>
【数据库】第七章课后题
查看>>
第四章 串、数组和广义表 —— BF算法和KMP算法
查看>>
[选拔赛1]花园(矩阵快速幂),JM的月亮神树(最短路),保护出题人(斜率优化)
查看>>
DLA:一种深度网络特征融合方法
查看>>
leetcode114(二叉树展开为链表)
查看>>
java —— static 关键字
查看>>
在 Python 调试过程中设置不中断的断点 | Linux 中国
查看>>
使用开源可视化工具来理解你的 Python 代码 | Linux 中国
查看>>
硬核观察 | 有人在比特币骗局中损失了 10 个比特币
查看>>
使用 top 命令了解 Fedora 的内存使用情况 | Linux 中国
查看>>