Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/error"

From cppreference.com
< cpp
m (Shorten template names. Use {{lc}} where appropriate.)
m (Update links.)
Line 7: Line 7:
 
{{dsc begin}}
 
{{dsc begin}}
 
{{dsc header | exception}}
 
{{dsc header | exception}}
{{dsc inc | cpp/error/dcl list exception}}
+
{{dsc inc | cpp/error/dsc exception}}
 
{{dsc h2 | Capture and storage of exception objects}}
 
{{dsc h2 | Capture and storage of exception objects}}
{{dsc inc | cpp/error/dcl list uncaught_exception}}
+
{{dsc inc | cpp/error/dsc uncaught_exception}}
{{dsc inc | cpp/error/dcl list exception_ptr}}
+
{{dsc inc | cpp/error/dsc exception_ptr}}
{{dsc inc | cpp/error/dcl list make_exception_ptr}}
+
{{dsc inc | cpp/error/dsc make_exception_ptr}}
{{dsc inc | cpp/error/dcl list current_exception}}
+
{{dsc inc | cpp/error/dsc current_exception}}
{{dsc inc | cpp/error/dcl list rethrow_exception}}
+
{{dsc inc | cpp/error/dsc rethrow_exception}}
{{dsc inc | cpp/error/dcl list nested_exception}}
+
{{dsc inc | cpp/error/dsc nested_exception}}
{{dsc inc | cpp/error/dcl list throw_with_nested}}
+
{{dsc inc | cpp/error/dsc throw_with_nested}}
{{dsc inc | cpp/error/dcl list rethrow_if_nested}}
+
{{dsc inc | cpp/error/dsc rethrow_if_nested}}
 
{{dsc h2 | Handling of failures in exception handling}}
 
{{dsc h2 | Handling of failures in exception handling}}
{{dsc inc | cpp/error/dcl list terminate}}
+
{{dsc inc | cpp/error/dsc terminate}}
{{dsc inc | cpp/error/dcl list terminate_handler}}
+
{{dsc inc | cpp/error/dsc terminate_handler}}
{{dsc inc | cpp/error/dcl list get_terminate}}
+
{{dsc inc | cpp/error/dsc get_terminate}}
{{dsc inc | cpp/error/dcl list set_terminate}}
+
{{dsc inc | cpp/error/dsc set_terminate}}
 
{{dsc h2 | Handling of exception specification violations}}
 
{{dsc h2 | Handling of exception specification violations}}
{{dsc inc | cpp/error/dcl list unexpected}}
+
{{dsc inc | cpp/error/dsc unexpected}}
{{dsc inc | cpp/error/dcl list bad_exception}}
+
{{dsc inc | cpp/error/dsc bad_exception}}
{{dsc inc | cpp/error/dcl list unexpected_handler}}
+
{{dsc inc | cpp/error/dsc unexpected_handler}}
{{dsc inc | cpp/error/dcl list get_unexpected}}
+
{{dsc inc | cpp/error/dsc get_unexpected}}
{{dsc inc | cpp/error/dcl list set_unexpected}}
+
{{dsc inc | cpp/error/dsc set_unexpected}}
 
{{dsc end}}
 
{{dsc end}}
  
Line 51: Line 51:
 
{{dsc begin}}
 
{{dsc begin}}
 
{{dsc header | cerrno}}
 
{{dsc header | cerrno}}
{{dsc inc | cpp/error/dcl list errno}}
+
{{dsc inc | cpp/error/dsc errno}}
{{dsc inc | cpp/error/dcl list errno_macros}}
+
{{dsc inc | cpp/error/dsc errno_macros}}
 
{{dsc end}}
 
{{dsc end}}
  
Line 60: Line 60:
  
 
{{dsc begin}}
 
{{dsc begin}}
{{dsc inc | cpp/language/dcl list static_assert}}
+
{{dsc inc | cpp/language/dsc static_assert}}
 
{{dsc break}}
 
{{dsc break}}
 
{{dsc header | cassert}}
 
{{dsc header | cassert}}
{{dsc inc | cpp/error/dcl list assert}}
+
{{dsc inc | cpp/error/dsc assert}}
 
{{dsc end}}
 
{{dsc end}}
  
Line 72: Line 72:
 
{{dsc begin}}
 
{{dsc begin}}
 
{{dsc header | system_error}}
 
{{dsc header | system_error}}
{{dsc inc | cpp/error/dcl list error_category}}
+
{{dsc inc | cpp/error/dsc error_category}}
{{dsc inc | cpp/error/dcl list generic_category}}
+
{{dsc inc | cpp/error/dsc generic_category}}
{{dsc inc | cpp/error/dcl list system_category}}
+
{{dsc inc | cpp/error/dsc system_category}}
{{dsc inc | cpp/error/dcl list error_condition}}
+
{{dsc inc | cpp/error/dsc error_condition}}
{{dsc inc | cpp/error/dcl list errc}}
+
{{dsc inc | cpp/error/dsc errc}}
{{dsc inc | cpp/error/dcl list error_code}}
+
{{dsc inc | cpp/error/dsc error_code}}
{{dsc inc | cpp/error/dcl list system_error}}
+
{{dsc inc | cpp/error/dsc system_error}}
 
{{dsc end}}
 
{{dsc end}}
  

Revision as of 21:51, 31 May 2013

 
 
 

Contents

Exception handling

The header <exception> provides several classes and functions related to exception handling in C++ programs.

Defined in header <exception>
base class for exceptions thrown by the standard library components
(class) [edit]
Capture and storage of exception objects
(removed in C++20*)(C++17)
checks if exception handling is currently in progress
(function) [edit]
shared pointer type for handling exception objects
(typedef) [edit]
creates an std::exception_ptr from an exception object
(function template) [edit]
captures the current exception in a std::exception_ptr
(function) [edit]
throws the exception from an std::exception_ptr
(function) [edit]
a mixin type to capture and store current exceptions
(class) [edit]
throws its argument with std::nested_exception mixed in
(function template) [edit]
throws the exception from a std::nested_exception
(function template) [edit]
Handling of failures in exception handling
function called when exception handling fails
(function) [edit]
the type of the function called by std::terminate
(typedef) [edit]
obtains the current terminate_handler
(function) [edit]
changes the function to be called by std::terminate
(function) [edit]
Handling of exception specification violations
(deprecated in C++11)(removed in C++17)
function called when dynamic exception specification is violated
(function) [edit]
exception thrown when std::current_exception fails to copy the exception object
(class) [edit]
(deprecated in C++11)(removed in C++17)
the type of the function called by std::unexpected
(typedef) [edit]
(deprecated in C++11)(removed in C++17)
obtains the current unexpected_handler
(function) [edit]
(deprecated in C++11)(removed in C++17)
changes the function to be called by std::unexpected
(function) [edit]

Exception categories

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.

Defined in header <stdexcept>
exception class to indicate violations of logical preconditions or class invariants
(class)
exception class to report invalid arguments
(class)
exception class to report domain errors
(class)
exception class to report attempts to exceed maximum allowed size
(class)
exception class to report arguments outside of expected range
(class)
exception class to indicate conditions only detectable at run time
(class)
exception class to report range errors in internal computations
(class)
exception class to report arithmetic overflows
(class)
exception class to report arithmetic underflows
(class)

Error numbers

Defined in header <cerrno>
macro which expands to POSIX-compatible thread-local error number variable
(macro variable)[edit]
macros for standard POSIX-compatible error conditions
(macro constant) [edit]

Assertions

Assertions help to implement checking of preconditions in programs.

static_assert declaration (C++11) performs compile-time assertion checking[edit]
Defined in header <cassert>
aborts the program if the user-specified condition is not true. May be disabled for release builds.
(function macro) [edit]

System error

The header <system_error> defines types and functions used to report error conditions originating from the operating system, streams I/O, std::future, or other low-level APIs.

Defined in header <system_error>
base class for error categories
(class) [edit]
identifies the generic error category
(function) [edit]
identifies the operating system error category
(function) [edit]
holds a portable error code
(class) [edit]
(C++11)
the std::error_condition enumeration listing all standard <cerrno> macro constants
(class) [edit]
holds a platform-dependent error code
(class) [edit]
exception class used to report conditions that have an error_code
(class) [edit]