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';
}
}