Namespaces
Variants

std:: exception

From cppreference.net
Utilities library
헤더 파일에 정의됨 <exception>
class exception ;

throw expression 을 통해 오류를 처리하기 위한 일관된 인터페이스를 제공합니다.

표준 라이브러리에서 생성된 모든 예외는 std::exception 으로부터 상속됩니다.

std::exception 의 모든 멤버 함수가 constexpr 입니다.

(since C++26)

목차

멤버 함수

예외 객체를 생성합니다
(public member function)
[virtual]
예외 객체를 소멸시킵니다
(virtual public member function)
예외 객체를 복사합니다
(public member function)
[virtual]
설명 문자열을 반환합니다
(virtual public member function)

표준 예외 요구사항

표준 라이브러리 클래스 중 T std::exception 에서 파생된 경우, 다음과 같은 공개 멤버 함수들을 가지며, 각 함수는 예외를 발생시키지 않음 (C++11 이전) non-throwing exception specification 을 가짐 (C++11 이후) :

복사 생성자와 복사 할당 연산자는 다음과 같은 사후 조건을 충족합니다:

  • 두 객체 lhs rhs 가 모두 동적 타입 T 를 가지고, lhs rhs 의 복사본인 경우, std:: strcmp ( lhs. what ( ) , rhs. what ( ) ) 0 과 같습니다.

T what() 멤버 함수는 std::exception::what() 에 지정된 제약 조건을 만족합니다.

표준 예외

(C++11 이후)
(C++11 이후)
(C++17부터)
(TM TS)
(C++20부터)
(C++17부터)
(C++23부터)
(C++11 이후)
(C++11 이후)
(C++11 이전)
(C++17부터)

참고 사항

기능 테스트 매크로 표준 기능
__cpp_lib_constexpr_exceptions 202411L (C++26) constexpr 예외 타입

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 471 C++98 std::exception 에서 파생된 표준 라이브러리 클래스에 대한 요구사항이 없었음 추가됨