Error handling
来自cppreference.com
< cpp
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
目录 |
[编辑] 异常处理
<exception>
头文件提供了若干用于在 C++ 程序中处理异常的类和函数。
在头文件
<exception> 中定义 | |
标准库组件抛出的异常的基类 原文: base class for exceptions thrown by the standard library components (类) | |
异常对象的捕获和存储 | |
检查,如果异常处理是目前正在进行中 原文: checks if exception handling is currently in progress (函数) | |
(C++11) |
处理异常对象的共享指针类型 原文: shared pointer type for handling exception objects (typedef) |
(C++11) |
创建一个异常对象的std::exception_ptr 原文: creates an std::exception_ptr from an exception object (函数模板) |
(C++11) |
captures the current exception in a std::exception_ptr (函数) |
(C++11) |
从std::exception_ptr抛出的异常 原文: throws the exception from an std::exception_ptr (函数) |
(C++11) |
一个mixin捕获和存储当前的异常的类型 原文: a mixin type to capture and store current exceptions (类) |
(C++11) |
std::nested_exception混合 原文: throws its argument with std::nested_exception mixed in (函数模板) |
(C++11) |
从std::nested_exception抛出的异常 原文: throws the exception from a std::nested_exception (函数模板) |
异常处理失败时的处理 | |
异常处理函数调用时失败 原文: function called when exception handling fails (函数) | |
std::terminate所调用的函数的类型的 原文: the type of the function called by std::terminate (typedef) | |
(C++11) |
获得电流terminate_handler 原文: obtains the current terminate_handler (函数) |
改变功能被称为由std::terminate 原文: changes the function to be called by std::terminate (函数) | |
违反异常规格说明时的处理 | |
(已弃用) |
函数调用动态的异常规范被违反时 原文: function called when dynamic exception specification is violated (函数) |
时抛出的异常动态异常规范被违反时,如果可能的话 原文: exception thrown when dynamic exception specification is violated, if possible (类) | |
(已弃用) |
std::unexpected所调用的函数的类型的 原文: the type of the function called by std::unexpected (typedef) |
(C++11)(已弃用) |
获得电流unexpected_handler 原文: obtains the current unexpected_handler (函数) |
(已弃用) |
改变功能被称为由std::unexpected 原文: changes the function to be called by std::unexpected (函数) |
[编辑] 异常类
预定义了一些方便的类在头
<stdexcept>
报告特定的错误条件。这些类可以分为两类:“逻辑”错误“运行时”错误。逻辑错误的结果,在程序中的逻辑错误,是可以预防的。运行时错误是由于不可抗力事件的范围,该方案不容易被预测.原文:
Several convenience classes are predefined in the header
<stdexcept>
to report particular error conditions. These classes can be divided into two categories: logic errors and runtime errors. Logic errors are a consequence of faulty logic within the program and may be preventable. Runtime errors are due to events beyond the scope of the program and can not be easily predicted. 在头文件
<stdexcept> 中定义 | |
异常类,指示违反了逻辑前提或类不变量 原文: exception class to indicate violations of logical preconditions or class invariants (类) | |
用于报告无效参数的异常类 (类) | |
用于报告定义域错误的异常类 (类) | |
异常类报告试图超过允许的最大大小 原文: exception class to report attempts to exceed maximum allowed size (类) | |
异常类报告的预期范围之外的参数 原文: exception class to report arguments outside of expected range (类) | |
用于报告仅在运行时能够检测到的条件的异常类 (类) | |
用于报告内部计算中值域错误的异常类 (类) | |
用于报告算术上溢的异常类 (类) | |
用于报告算术下溢的异常类 (类) |
[编辑] 错误号
在头文件
<cerrno> 中定义 | |
宏扩展到本地POSIX兼容线程错误号variable
(宏变量) 原文: macro which expands to POSIX-compatible thread-local error number variable (宏变量) | |
宏为标准的POSIX兼容的错误条件 原文: macros for standard POSIX-compatible error conditions (常量宏) |
[编辑] 断言
断言可以用来在程序中实现前提条件的检查。
静态断言 | 检查(C++11 起)进行编译时断言
原文: performs compile-time assertion checking (C++11 起) |
在头文件
<cassert> 中定义 | |
如果用户指定的条件是不true中止该程序。发布版本中可能会被禁用 原文: aborts the program if the user-specified condition is not true. May be disabled for release builds (函数宏) |
[编辑] 系统错误
操作系统、流式 I/O、std::future、以及其它一些底层 API 的中的出错状况可以通过 <system_error>
头文件中定义的类型和函数来报告。
在头文件
<system_error> 中定义 | |
(C++11) |
错误类型的基类 (类) |
(C++11) |
标识通用的错误类别 原文: identifies the generic error category (函数) |
(C++11) |
识别操作系统错误类别 原文: identifies the operating system error category (函数) |
(C++11) |
持有便携式的错误代码 (类) |
(C++11) |
std::error_condition列出所有标准 <cerrno> 宏常量枚举原文: the std::error_condition enumeration listing all standard <cerrno> macro constants(类) |
(C++11) |
持有与平台相关的错误代码 原文: holds a platform-dependent error code (类) |
(C++11) |
使用异常类报告有一个ERROR_CODE的条件 原文: exception class used to report conditions that have an error_code (类) |