博客
关于我
浅谈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

你可能感兴趣的文章
Linux中的虚拟内存机制和内存映射
查看>>
Android系统启动系列5 SystemServer进程下
查看>>
Android四大组件系列9 ContentProvider原理
查看>>
理解PendingIntent
查看>>
Android SurfaceFlinger4 提交Buffer
查看>>
深入理解 ClientLifecycleManager 机制
查看>>
android基础知识回顾--ContentProvider简单用法
查看>>
压缩解压
查看>>
js try{}catch(){}finally{}语句
查看>>
PAT (Basic Level) Practice (中文)——1005 继续(3n+1)猜想 (25分)
查看>>
PAT (Basic Level) Practice (中文)——1011 A+B 和 C (15分)
查看>>
i711700K和r55600x差距大不大 i7 11700K和r5 5600x对比哪个好
查看>>
R3 PRO 3200G和r7 3700u 哪个好
查看>>
入手评测 联想小新Pro14和Air14Plus哪个好?区别对比
查看>>
macOS Big Sur系统中如何开启设置触控板三指拖拽功能?
查看>>
修复苹果Mac中的快速视频播放错误的方法
查看>>
苹果HomePod智能音箱怎么使用广播功能?
查看>>
Mac系统投屏到电视机的方法
查看>>
【Docker&ARM】ARM架构服务器上docker的安装
查看>>
php--自定义错误处理函数的使用方法
查看>>