std::invalid_argument

std::invalid_argument (잘못된 인자 예외)

함수에 부적절한 인자가 주어졌을 때 던져지는 논리 오류 예외예요. 함수가 받아선 안 되는 값이 인자로 전달됐음을 나타내요.

출처: cppreference

본문

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

class invalid_argument : public logic_error;

std::invalid_argument는 함수에 부적절한 인자가 주어졌을 때 던져지는 예외로, std::logic_error에서 파생돼요. 예를 들어 std::stoi가 변환할 수 없는 문자열을 받거나, std::bitset 생성자가 숫자 값이 아닌 문자열을 받거나, 염기(base) 지정 함수가 허용 범위 밖의 염기를 받는 경우 등에 던져져요.

생성자:

  • explicit invalid_argument( const std::string& what_arg );
  • explicit invalid_argument( const char* what_arg );
  • 인자로 준 문자열이 what()에서 반환될 설명이에요.
#include <bitset>
#include <iostream>

int main()
{
    try
    {
        std::bitset<4> b("xyz"); // 잘못된 인자 -> invalid_argument
    }
    catch (const std::invalid_argument& e)
    {
        std::cout << "invalid argument: " << e.what() << '\n';
    }
}

더 알아보기 (Learn more)

cppreference