std::logic_error

std::logic_error (논리 오류 예외)

프로그램 실행 전에 검출될 수 있는 논리 오류를 나타내는 예외 타입의 기초 클래스예요. std::logic_error에서 파생된 예외들은 프로그램 내부의 전제 조건 위반을 나타내요.

출처: cppreference

본문

<stdexcept> 헤더에 정의돼 있고, 논리 오류 예외 계열의 기초 클래스예요.

class logic_error : public exception;

std::logic_error는 오류가 프로그램의 논리적 전제 조건을 위반해 실행 전에(혹은 논리적으로) 검출될 수 있는 "논리 오류"를 나타내는 예외들의 기초 클래스예요. 함수 실행 중에 던져질 수 있지만, 그 원인은 코드의 결함(잘못된 인자, 불변식 위반 등)이에요.

생성자:

  • explicit logic_error( const std::string& what_arg );
  • explicit logic_error( const char* what_arg );
  • 인자로 준 문자열이 what()에서 반환될 설명이에요. (구현이 null 종료로 저장.)

std::logic_error에서 직접 파생되는 표준 예외:

  • std::domain_error — 정의역(domain) 오류.
  • std::invalid_argument — 잘못된 인자.
  • std::length_error — 길이 오류.
  • std::out_of_range — 범위 밖 접근.

what()은 생성 시 전달한 오류 설명 문자열을 돌려줘요. 예를 들어 std::out_of_range("index out of bounds")를 던지면 what()이 그 문자열을 반환해요.

더 알아보기 (Learn more)

cppreference