Diagnostics library
목차 |
예외 처리
헤더 <exception> 는 C++ 프로그램의 예외 처리와 관련된 여러 클래스와 함수를 제공합니다.
|
헤더에 정의됨
<exception>
|
|
|
표준 라이브러리 구성 요소에서 발생하는 예외들의 기본 클래스
(클래스) |
|
예외 객체의 캡처 및 저장 |
|
|
(
C++20에서 제거됨*
)
(C++17)
|
예외 처리가 현재 진행 중인지 확인합니다
(함수) |
|
(C++11)
|
예외 객체를 처리하기 위한 공유 포인터 타입
(typedef) |
|
(C++11)
|
예외 객체로부터
std::exception_ptr
를 생성합니다
(함수 템플릿) |
|
(C++11)
|
현재 예외를
std::exception_ptr
에 캡처합니다
(함수) |
|
(C++11)
|
std::exception_ptr
에서 예외를 던집니다
(함수) |
|
(C++11)
|
현재 예외를 캡처하고 저장하기 위한 믹스인 타입
(클래스) |
|
(C++11)
|
인자를
std::nested_exception
과 함께 던짐
(함수 템플릿) |
|
(C++11)
|
std::nested_exception
에서 예외를 다시 던짐
(함수 템플릿) |
예외 처리에서의 실패 처리 |
|
|
헤더에 정의됨
<exception>
|
|
|
예외 처리 실패 시 호출되는 함수
(function) |
|
|
std::terminate
에 의해 호출되는 함수의 타입
(typedef) |
|
|
(C++11)
|
현재 terminate_handler를 획득함
(함수) |
|
std::terminate
가 호출할 함수를 변경합니다
(function) |
|
|
예외 객체 복사에 실패할 때 발생하는 예외
std::current_exception
(클래스) |
|
예외 명세 위반 처리 (C++17까지) |
|
|
(C++11에서 사용 중단됨)
(C++17에서 제거됨)
|
동적 예외 사양이 위반될 때 호출되는 함수
(함수) |
|
(C++11에서 사용 중단됨)
(C++17에서 제거됨)
|
std::unexpected
에 의해 호출되는 함수의 타입
(typedef) |
|
(C++11에서 사용 중단됨)
(C++17에서 제거됨)
|
현재
unexpected_handler
를 획득함
(함수) |
|
(C++11에서 사용 중단됨)
(C++17에서 제거됨)
|
std::unexpected
가 호출할 함수를 변경합니다
(함수) |
예외 범주
여러 편의 클래스들이 헤더 파일
<stdexcept>
에 특정 오류 조건들을 보고하기 위해 미리 정의되어 있습니다. 이러한 클래스들은 두 가지 범주로 나눌 수 있습니다:
논리
오류와
런타임
오류입니다. 논리 오류는 프로그램 내부의 잘못된 논리의 결과이며 예방 가능할 수 있습니다. 런타임 오류는 프로그램의 범위를 벗어난 사건들로 인해 발생하며 쉽게 예측하기 어렵습니다.
|
헤더 파일에 정의됨
<stdexcept>
|
|
|
논리적 전제 조건이나 클래스 불변식을 위반했음을 나타내는 예외 클래스
(class) |
|
|
잘못된 인수를 보고하는 예외 클래스
(class) |
|
|
정의역 오류를 보고하는 예외 클래스
(class) |
|
|
허용된 최대 크기를 초과하는 시도를 보고하는 예외 클래스
(class) |
|
|
예상 범위를 벗어난 인수를 보고하는 예외 클래스
(class) |
|
|
런타임에만 감지 가능한 조건을 나타내는 예외 클래스
(class) |
|
|
내부 계산에서의 범위 오류를 보고하는 예외 클래스
(class) |
|
|
산술 오버플로를 보고하는 예외 클래스
(class) |
|
|
산술 언더플로를 보고하는 예외 클래스
(class) |
|
|
(TM TS)
|
원자적 트랜잭션을 취소하는 예외 클래스
(class template) |
오류 번호
|
헤더 파일에 정의됨
<cerrno>
|
|
|
POSIX 호환 스레드-로컬 에러 번호 변수로 확장되는 매크로
(매크로 변수) |
|
|
표준 POSIX 호환 에러 조건을 위한 매크로들
(매크로 상수) |
|
시스템 오류 (since C++11)
헤더
<system_error>
는 운영 체제, 스트림 I/O,
std::future
, 또는 다른 저수준 API들에서 발생하는 오류 조건들을 보고하는 데 사용되는 타입들과 함수들을 정의합니다.
|
헤더 파일에 정의됨
<system_error>
|
|
|
(C++11)
|
에러 카테고리의 기본 클래스
(클래스) |
|
(C++11)
|
일반 에러 카테고리를 식별함
(함수) |
|
(C++11)
|
운영 체제 에러 카테고리를 식별함
(함수) |
|
(C++11)
|
이식 가능한 에러 코드를 보유함
(클래스) |
|
(C++11)
|
모든 표준
<cerrno>
매크로 상수를 나열하는
std::error_condition
열거형
(클래스) |
|
(C++11)
|
플랫폼 종속적 에러 코드를 보유함
(클래스) |
|
(C++11)
|
error_code를 갖는 조건을 보고하는 데 사용되는 예외 클래스
(클래스) |
어서션
어설션은 프로그램에서 사전 조건 검사를 구현하는 데 도움을 줍니다.
|
헤더 파일에 정의됨
<cassert>
|
|
|
사용자가 지정한 조건이
true
가 아닐 경우 프로그램을 중단합니다. 릴리스 빌드에서는 비활성화될 수 있습니다.
(함수 매크로) |
|
스택 트레이스 (C++23부터)
|
헤더 파일에 정의됨
<stacktrace>
|
|
|
(C++23)
|
스택 트레이스에서의 평가 표현
(클래스) |
|
(C++23)
|
스택 트레이스 엔트리로 구성된 호출 시퀀스의 근사적 표현
(클래스 템플릿) |
디버깅 지원 (since C++26)
|
헤더 파일에 정의됨
<debugging>
|
|
|
(C++26)
|
호출 시 실행 중인 프로그램을 일시 중지함
(함수) |
|
(C++26)
|
std::is_debugger_present
가
true
를 반환할 경우
std::breakpoint
를 호출함
(함수) |
|
(C++26)
|
프로그램이 디버거 제어 하에 실행 중인지 여부를 확인함
(함수) |
참고 항목
static_assert
선언
(C++11)
|
컴파일 타임 어서션 검사 수행 |
|
C 문서
for
오류 처리
|
|