std::exception::exception
cppreference.net에서
exception() throw();
|
(1) | (C++11까지) |
exception() noexcept;
|
(C++11부터) (constexpr, C++26부터) |
|
exception( const exception& other ) throw();
|
(2) | (C++11까지) |
exception( const exception& other ) noexcept;
|
(C++11부터) (constexpr, C++26부터) |
|
새 예외 객체를 생성합니다.
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() 에 대한 요구사항이 없음 | 추가됨 |