std::exception:: exception
From cppreference.net
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diagnostics library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::exception
| Member functions | ||||
|
exception::exception
|
||||
| (1) | ||
|
exception
(
)
throw
(
)
;
|
(C++11 이전) | |
|
exception
(
)
noexcept
;
|
(C++11 이후)
(C++26 이후 constexpr) |
|
| (2) | ||
|
exception
(
const
exception
&
other
)
throw
(
)
;
|
(C++11 이전) | |
|
exception
(
const
exception
&
other
)
noexcept
;
|
(C++11 이후)
(C++26 이후 constexpr) |
|
새로운 예외 객체를 생성합니다.
1)
기본 생성자.
what()
는 구현 정의 문자열을 반환합니다.
2)
복사 생성자. 내용을
other
의 내용으로 초기화합니다.
*
this
와
other
모두가 동적 타입
std::exception
을 가지고 있다면
std::
strcmp
(
what
(
)
, other.
what
(
)
)
==
0
입니다.
매개변수
| other | - | 내용을 할당하기 위한 또 다른 예외 |
참고 사항
std::exception
의 복사는 예외를 발생시키는 것이 허용되지 않기 때문에, 파생 클래스들(예:
std::runtime_error
)이 사용자 정의 진단 메시지를 관리해야 할 때, 일반적으로 copy-on-write 문자열로 구현됩니다.
Microsoft 구현에는 문자열을 취하는 비표준 생성자가 포함되어 있어 의미 있는 오류 메시지와 함께 인스턴스를 직접 throw할 수 있습니다. 가장 가까운 표준 대응물은 std::runtime_error 또는 std::logic_error 입니다.
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 471 | C++98 | 예외 복사본의 what() 에 대한 요구사항이 없음 | 추가됨 |