std::overflow_error
std::overflow_error (오버플로 예외)
산술 연산이 오버플로(표현 가능한 범위 초과)했을 때 던져지는 런타임 오류 예외예요. 예를 들어 std::stoi가 int 범위를 벗어난 값을 반환하려 할 때 발생할 수 있어요.
출처: 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()은 전달한 설명 문자열을 돌려줘요.