Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/error"

From cppreference.com
< cpp
m (r2.7.3) (Robot: Adding de, es, fr, it, ja, pt, ru, zh)
m (Shorten template names. Use {{lc}} where appropriate.)
Line 5: Line 5:
 
The header {{tt|<exception>}} provides several classes and functions related to exception handling in C++ programs.
 
The header {{tt|<exception>}} provides several classes and functions related to exception handling in C++ programs.
  
{{dcl list begin}}
+
{{dsc begin}}
{{dcl list header | exception}}
+
{{dsc header | exception}}
{{dcl list template | cpp/error/dcl list exception}}
+
{{dsc inc | cpp/error/dcl list exception}}
{{dcl list h2 | Capture and storage of exception objects}}
+
{{dsc h2 | Capture and storage of exception objects}}
{{dcl list template | cpp/error/dcl list uncaught_exception}}
+
{{dsc inc | cpp/error/dcl list uncaught_exception}}
{{dcl list template | cpp/error/dcl list exception_ptr}}
+
{{dsc inc | cpp/error/dcl list exception_ptr}}
{{dcl list template | cpp/error/dcl list make_exception_ptr}}
+
{{dsc inc | cpp/error/dcl list make_exception_ptr}}
{{dcl list template | cpp/error/dcl list current_exception}}
+
{{dsc inc | cpp/error/dcl list current_exception}}
{{dcl list template | cpp/error/dcl list rethrow_exception}}
+
{{dsc inc | cpp/error/dcl list rethrow_exception}}
{{dcl list template | cpp/error/dcl list nested_exception}}
+
{{dsc inc | cpp/error/dcl list nested_exception}}
{{dcl list template | cpp/error/dcl list throw_with_nested}}
+
{{dsc inc | cpp/error/dcl list throw_with_nested}}
{{dcl list template | cpp/error/dcl list rethrow_if_nested}}
+
{{dsc inc | cpp/error/dcl list rethrow_if_nested}}
{{dcl list h2 | Handling of failures in exception handling}}
+
{{dsc h2 | Handling of failures in exception handling}}
{{dcl list template | cpp/error/dcl list terminate}}
+
{{dsc inc | cpp/error/dcl list terminate}}
{{dcl list template | cpp/error/dcl list terminate_handler}}
+
{{dsc inc | cpp/error/dcl list terminate_handler}}
{{dcl list template | cpp/error/dcl list get_terminate}}
+
{{dsc inc | cpp/error/dcl list get_terminate}}
{{dcl list template | cpp/error/dcl list set_terminate}}
+
{{dsc inc | cpp/error/dcl list set_terminate}}
{{dcl list h2 | Handling of exception specification violations}}
+
{{dsc h2 | Handling of exception specification violations}}
{{dcl list template | cpp/error/dcl list unexpected}}
+
{{dsc inc | cpp/error/dcl list unexpected}}
{{dcl list template | cpp/error/dcl list bad_exception}}
+
{{dsc inc | cpp/error/dcl list bad_exception}}
{{dcl list template | cpp/error/dcl list unexpected_handler}}
+
{{dsc inc | cpp/error/dcl list unexpected_handler}}
{{dcl list template | cpp/error/dcl list get_unexpected}}
+
{{dsc inc | cpp/error/dcl list get_unexpected}}
{{dcl list template | cpp/error/dcl list set_unexpected}}
+
{{dsc inc | cpp/error/dcl list set_unexpected}}
{{dcl list end}}
+
{{dsc end}}
  
 
====Exception categories====
 
====Exception categories====
Line 34: Line 34:
 
Several convenience classes are predefined in the header {{tt|<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.
 
Several convenience classes are predefined in the header {{tt|<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.
  
{{dcl list begin}}
+
{{dsc begin}}
{{dcl list header | stdexcept}}
+
{{dsc header | stdexcept}}
{{dcl list class | cpp/error/logic_error | exception class to indicate violations of logical preconditions or class invariants}}
+
{{dsc class | cpp/error/logic_error | exception class to indicate violations of logical preconditions or class invariants}}
{{dcl list class | cpp/error/invalid_argument | exception class to report invalid arguments}}
+
{{dsc class | cpp/error/invalid_argument | exception class to report invalid arguments}}
{{dcl list class | cpp/error/domain_error | exception class to report domain errors}}
+
{{dsc class | cpp/error/domain_error | exception class to report domain errors}}
{{dcl list class | cpp/error/length_error | exception class to report attempts to exceed maximum allowed size}}
+
{{dsc class | cpp/error/length_error | exception class to report attempts to exceed maximum allowed size}}
{{dcl list class | cpp/error/out_of_range | exception class to report arguments outside of expected range}}
+
{{dsc class | cpp/error/out_of_range | exception class to report arguments outside of expected range}}
{{dcl list class | cpp/error/runtime_error | exception class to indicate conditions only detectable at run time}}
+
{{dsc class | cpp/error/runtime_error | exception class to indicate conditions only detectable at run time}}
{{dcl list class | cpp/error/range_error | exception class to report range errors in internal computations}}
+
{{dsc class | cpp/error/range_error | exception class to report range errors in internal computations}}
{{dcl list class | cpp/error/overflow_error | exception class to report arithmetic overflows}}
+
{{dsc class | cpp/error/overflow_error | exception class to report arithmetic overflows}}
{{dcl list class | cpp/error/underflow_error | exception class to report arithmetic underflows}}
+
{{dsc class | cpp/error/underflow_error | exception class to report arithmetic underflows}}
{{dcl list end}}
+
{{dsc end}}
  
 
===Error numbers===
 
===Error numbers===
  
{{dcl list begin}}
+
{{dsc begin}}
{{dcl list header | cerrno}}
+
{{dsc header | cerrno}}
{{dcl list template | cpp/error/dcl list errno}}
+
{{dsc inc | cpp/error/dcl list errno}}
{{dcl list template | cpp/error/dcl list errno_macros}}
+
{{dsc inc | cpp/error/dcl list errno_macros}}
{{dcl list end}}
+
{{dsc end}}
  
 
===Assertions===
 
===Assertions===
Line 59: Line 59:
 
Assertions help to implement checking of preconditions in programs.
 
Assertions help to implement checking of preconditions in programs.
  
{{dcl list begin}}
+
{{dsc begin}}
{{dcl list template | cpp/language/dcl list static_assert}}
+
{{dsc inc | cpp/language/dcl list static_assert}}
{{dcl list break}}
+
{{dsc break}}
{{dcl list header | cassert}}
+
{{dsc header | cassert}}
{{dcl list template | cpp/error/dcl list assert}}
+
{{dsc inc | cpp/error/dcl list assert}}
{{dcl list end}}
+
{{dsc end}}
  
 
===System error===
 
===System error===
  
The header {{tt|<system_error>}} defines types and functions used to report error conditions originating from the operating system, streams I/O, {{c|std::future}}, or other low-level APIs.
+
The header {{tt|<system_error>}} defines types and functions used to report error conditions originating from the operating system, streams I/O, {{lc|std::future}}, or other low-level APIs.
  
{{dcl list begin}}
+
{{dsc begin}}
{{dcl list header | system_error}}
+
{{dsc header | system_error}}
{{dcl list template | cpp/error/dcl list error_category}}
+
{{dsc inc | cpp/error/dcl list error_category}}
{{dcl list template | cpp/error/dcl list generic_category}}
+
{{dsc inc | cpp/error/dcl list generic_category}}
{{dcl list template | cpp/error/dcl list system_category}}
+
{{dsc inc | cpp/error/dcl list system_category}}
{{dcl list template | cpp/error/dcl list error_condition}}
+
{{dsc inc | cpp/error/dcl list error_condition}}
{{dcl list template | cpp/error/dcl list errc}}
+
{{dsc inc | cpp/error/dcl list errc}}
{{dcl list template | cpp/error/dcl list error_code}}
+
{{dsc inc | cpp/error/dcl list error_code}}
{{dcl list template | cpp/error/dcl list system_error}}
+
{{dsc inc | cpp/error/dcl list system_error}}
{{dcl list end}}
+
{{dsc end}}
  
 
[[de:cpp/error]]
 
[[de:cpp/error]]

Revision as of 18:41, 31 May 2013

 
 
 

Contents

Exception handling

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

Template:cpp/error/dcl list exceptionTemplate:cpp/error/dcl list uncaught exceptionTemplate:cpp/error/dcl list exception ptrTemplate:cpp/error/dcl list make exception ptrTemplate:cpp/error/dcl list current exceptionTemplate:cpp/error/dcl list rethrow exceptionTemplate:cpp/error/dcl list nested exceptionTemplate:cpp/error/dcl list throw with nestedTemplate:cpp/error/dcl list rethrow if nestedTemplate:cpp/error/dcl list terminateTemplate:cpp/error/dcl list terminate handlerTemplate:cpp/error/dcl list get terminateTemplate:cpp/error/dcl list set terminateTemplate:cpp/error/dcl list unexpectedTemplate:cpp/error/dcl list bad exceptionTemplate:cpp/error/dcl list unexpected handlerTemplate:cpp/error/dcl list get unexpectedTemplate:cpp/error/dcl list set unexpected
Defined in header <exception>
Capture and storage of exception objects
Handling of failures in exception handling
Handling of exception specification violations

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

Template:cpp/error/dcl list errnoTemplate:cpp/error/dcl list errno macros
Defined in header <cerrno>

Assertions

Assertions help to implement checking of preconditions in programs.

Template:cpp/language/dcl list static assert
Template:cpp/error/dcl list assert
Defined in header <cassert>

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.

Template:cpp/error/dcl list error categoryTemplate:cpp/error/dcl list generic categoryTemplate:cpp/error/dcl list system categoryTemplate:cpp/error/dcl list error conditionTemplate:cpp/error/dcl list errcTemplate:cpp/error/dcl list error codeTemplate:cpp/error/dcl list system error
Defined in header <system_error>