Error handling
错误处理
异常处理
标头<exception>提供与C++程序中的异常处理相关的几个类和函数。
在标头中定义<exception>
*。
标准库组件引发的异常的异常基类%28class%29
异常对象的捕获和存储
隐秘[医]例外[医]异常%28C++17%29检查是否正在进行异常处理
例外[医]用于处理异常对象的PTR%28C++11%29共享指针类型
制造[医]例外[医]PTR%28C++11%29创建一个std::Exception[医]来自异常对象%28函数模板%29的PTR
电流[医]异常%28C++11%29捕获std::Exception中的当前异常[医]PTR%28功能%29
重投[医]异常%28C++11%29从std::Exception抛出异常[医]PTR%28功能%29
巢式[医]异常%28C++11%29 a混合类型以捕获和存储当前异常%28class%29
抛出[医]带着[医]嵌套%28C++11%29使用std::nested29抛出它的参数[医]%28函数模板中混合的异常%29
重投[医]如果[医]嵌套%28C++11%29抛出从std::nestedn异常[医]异常%28函数模板%29
异常处理中的故障处理
在标头中定义<exception>
异常处理失败时调用的终止函数%28函数%29
终止[医]处理由std::Terminate%28tyduif%29调用的函数的类型
弄到[医]终止%28C++11%29获得当前终止[医]处理程序%28功能%29
集[医]终止更改由std::终止%28函数%29调用的函数
坏[医]当STD::Current引发异常时引发的异常[医]异常无法复制异常对象%28类%29
C++17%29中删除的异常规范违规事件的处理
在违反动态异常规范时调用C++17%29函数之前,未预料到的%28函数%29
意料之外[医]处理程序%28,直到C++17%29,由std调用的函数的类型::意外的%28
弄到[医]意外%28C++11%29%28直到C++17%29获得当前意外[医]处理程序%28功能%29
集[医]意外%28,直到C++17%29更改由std调用的函数::意外%28函数%29
例外类别
在报头中预定义了几个方便类。<stdexcept>若要报告特定错误情况,请执行以下操作。这些类可分为两类:逻辑错误和运行时错误。逻辑错误是程序内部逻辑错误的结果,可以预防。运行时错误是由于超出程序范围的事件造成的,无法轻易预测。
在标头中定义<stdexcept>
*。
逻辑[医]错误异常类指示违反逻辑先决条件或类不变量%28类%29
无效[医]参数异常类报告无效参数%28类%29
域[医]错误异常类报告域错误%28类%29
长度[医]错误异常类报告试图超过最大允许大小%28类%29
走出[医]成[医]范围异常类报告超出预期范围%28类%29的参数
运行时[医]错误异常类,指示仅在运行时可检测到的条件%28类%29
范围[医]错误异常类报告内部计算中的范围错误%28类%29
溢流[医]错误异常类报告算术溢出%28class%29
底流[医]错误异常类报告算法低于%28class%29
TX[医]异常%28TM TS%29异常类取消原子事务%28类模板%29
误差号
在标头中定义<cerrno>
*。
扩展到POSIX兼容的线程-本地错误号变量%28宏变量%29的errno宏
标准POSIX的E2BIG、EACCES、...、EXDEV宏-兼容错误条件%28宏常数%29
断言
断言有助于在程序中实现对先决条件的检查。
static assertion | performs compile-time assertion checking (since C++11) |
---|
在标头中定义<cassert>
*。
如果用户指定的条件不为真,断言将中止程序.。可以禁用版本生成%28函数宏%29
系统误差
标头<system_error>定义类型和函数,用于报告源自操作系统、流I/O、std::future,或者其他低级别的API。
在标头<系统中定义[医]错误>
*。
误差[医]类别%28C++11%29基类用于错误类别%28类%29
属属[医]类别%28C++11%29标识泛型错误类别%28功能%29
系统[医]类别%28C++11%29标识操作系统错误类别%28功能%29
误差[医]条件%28C++11%29持有便携式错误代码%28class%29
ERRC%28C++11%29[医]条件枚举列出所有标准<cerrno>宏常数%28类%29
误差[医]代码%28C++11%29持有与平台相关的错误代码%28class%29
系统[医]错误%28C++11%29异常类,用于报告有错误的条件[医]代码%28类%29
另见
C用于错误处理的文档
*。
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。