728x90
반응형
- 프로그램을 작성할 때 함수나 메서드에 잘못된 인자가 전달되는 상황은 흔히 발생할 수 있습니다.
- 이러한 잘못된 입력을 사전에 감지하고 처리하지 않으면 예측할 수 없는 동작이나 프로그램 오류로 이어질 수 있기 때문에, 안전한 코드를 작성하기 위해서는 이를 적절히 처리하는 방법이 필요합니다.
C++
표준 라이브러리에서는 이러한 상황을 대비해 여러 예외 클래스를 제공하며, 그중std::invalid_argument
는 잘못된 인자가 함수에 전달되었을 때 사용하는 대표적인 예외 클래스입니다.std::invalid_argument
는std::logic_error
를 상속하며, 주로 인자 검증 중 유효하지 않은 값을 발견했을 때 throw하여 문제를 명확히 알려주는 역할을 합니다.
- 사용하기 위해서는
<stdexcept>
헤더를 포함해야 하며, 생성자는 전달된 문자열을 통해 예외 메시지를 저장합니다. - 예를 들어, 다음과 같이 잘못된 나이를 전달했을 때 예외를 발생시킬 수 있습니다.
-
cpp
#include <iostream> #include <stdexcept> void setAge(int age) { if (age < 0 || age > 150) { throw std::invalid_argument("유효하지 않은 나이 값입니다."); } std::cout << "나이: " << age << "세" << std::endl; } int main() { try { setAge(-5); } catch (const std::invalid_argument& e) { std::cerr << "예외 발생: " << e.what() << std::endl; } return 0; }
- 이처럼
std::invalid_argument
를 사용하면 잘못된 입력을 감지하고 예외 상황을 알릴 수 있어 프로그램의 안정성과 유지보수성을 높일 수 있습니다. - 올바른 인자 검증과 예외 처리 습관은 더 견고한 프로그램을 만드는 중요한 요소입니다.
- 도움이 되셨으면 하단의 ❤️ 공감 버튼 부탁 드립니다. 감사합니다! 😄
728x90
반응형
'C C++' 카테고리의 다른 글
C++ 중괄호 초기화(Uniform Initialization)와 프리미티브 타입의 기본값 정리 (0) | 2025.03.18 |
---|---|
C++17 std::any_cast 사용법과 예제 (0) | 2025.03.18 |
shared_ptr 배열을 안전하게 관리하는 방법과 C++ 버전별 주의사항 (0) | 2025.03.18 |
C++ 함수 오버로딩(overloading) '더 나은 변환(better conversion)' (0) | 2025.03.18 |
C++11 std::initializer_list : 여러 값을 간편하게 전달하는 방법 (0) | 2025.03.18 |