在线文档教程
C++
应用 | Utilities

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 assertionperforms 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。

http://en.cppreference.com/w/cpp/Error