std::overflow_error

std::overflow_error (오버플로 예외)

산술 연산이 오버플로(표현 가능한 범위 초과)했을 때 던져지는 런타임 오류 예외예요. 예를 들어 std::stoiint 범위를 벗어난 값을 반환하려 할 때 발생할 수 있어요.

출처: cppreference

본문

<stdexcept> 헤더에 정의돼 있고, std::runtime_error에서 파생되는 예외예요.

class overflow_error : public runtime_error;

std::overflow_error는 산술 연산의 결과가 표현 가능한 값의 범위를 오버플로할 때 던져지는 예외로, std::runtime_error에서 파생돼요.

대표적인 발생 지점:

  • std::stoul / std::stoull 등 부호 없는 정수 변환이 범위를 초과할 때.
  • std::filesystem 등에서 계산된 값이 타입 범위를 넘을 때.
  • 수학 함수들(<cmath>)에서 오버플로를 일으키는 결과에 대해.

(무한대를 만들려는 부동소수점 오버플로는 이 예외를 던지지 않는다는 점에 주의해요. 부동소수점 연산은 보통 IEEE 754 셈의 규칙을 따라 처리돼요.)

생성자:

  • explicit overflow_error( const std::string& what_arg );
  • explicit overflow_error( const char* what_arg );

what()은 전달한 설명 문자열을 돌려줘요.

더 알아보기 (Learn more)

cppreference