잘못된 상태를 발견한 위치에서 명확히 알립니다.
raise는 함수가 유효한 결과를 만들 수 없음을 호출자에게 알립니다. ValueError와 TypeError 같은 표준 예외를 우선 사용하고 도메인 실패를 구분해야 할 때 Exception을 상속한 사용자 정의 예외를 만듭니다.
InvalidScoreError는 ValueError를 상속하므로 except ValueError로도 잡힙니다. validate_score(120)은 0 이상 100 이하라는 조건을 어겨 예외를 일으키고, except 블록이 예외 객체를 출력해 점수 범위 오류: 120이 남습니다. 예외가 난 순간 바깥 print는 실행되지 않습니다.
원래 예외를 다른 예외로 바꿀 때 raise NewError(...) from error를 사용하면 원인 연결을 보존할 수 있습니다.
예외 메시지에는 실패한 규칙과 안전한 식별 정보를 담되 비밀번호나 전체 개인정보를 포함하지 않습니다.
오류 대신 None을 반환하면 정상적인 값 없음과 실패를 호출자가 구분하기 어려울 수 있습니다.
직접 바꿔보세요재고보다 큰 수량을 요청했을 때 OutOfStockError를 발생시키세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.