-
77 - (파이썬) 예외 강제 발생study with Q - 파이썬 2024. 8. 21. 18:40
# raise 구문
: 다음과 같은 3가지 형태로 예외를 강제로 발생시킬 수 있다.
- raise 예외객체
- raise 예외객체() - aka 생성자
- raise 예외객체(메세지)
raise Exception("예외를 강제로 발생시킵니다.") >>> Exception: 예외를 강제로 발생시킵니다.
근데... 예외를 왜 강제로 발생시켜요...? → 다른 개발자에게 '정보'를 전달하기 위해서
# 활용 예1) 미구현 상태인 정보 전달하기
코드의 범위가 큰 경우, pass 만으로는 코드가 제대로 실행되고 있는지 확인하기 어려운 경우가 있음
number = input("판별할 정수를 입력하세요> ") number = int(number) if number > 0: print("입력할 정수는 양수입니다.") elif number == 0: raise Exception("나중에 잊지말고 구현하슈") else: raise Exception("나중에 잊지말고 구현하슈.")
양수가 아닌 수를 입력하면 메세지가 나오면서 나중에 구현해야 하는 부분임을 알 수 있다.
특히, 구현 전이라는 메세지는 NotImplementedError라고 명시적으로 나타내는 예외객체가 있어서 이것을 사용하면 구현되지 않은 곳을 코드 검색을 통해 빨리 찾을 수도 있다.
요렇게
number = input("판별할 정수를 입력하세요> ") number = int(number) if number > 0: print("입력할 정수는 양수입니다.") elif number == 0: raise NotImplementedError("나중에 잊지말고 구현하슈") else: raise NotImplementedError("나중에 잊지말고 구현하슈.")
# 활용 예2) 이러면 안 된다 알려주기
def 사각형의넓이(너비, 높이): if 너비 <=0 or 높이 <= 0: raise ValueError("앙수로 입력하시오.") return 너비*높이 print(사각형의넓이(6, 3)) >>> 18 def 사각형의넓이(너비, 높이): if 너비 <=0 or 높이 <= 0: raise ValueError("앙수로 입력하시오.") return 너비*높이 print(사각형의넓이(-2, 3)) >>> ValueError: 앙수로 입력하시오.
'study with Q - 파이썬' 카테고리의 다른 글
79 - (파이썬) 클래스 등장 이전 (0) 2024.08.26 78 - (파이썬) 객체 지향 프로그래밍 (1) 2024.08.26 76 - (파이썬) 예외 객체와 예외 구분 (0) 2024.08.21 75 - (파이썬) 예외 처리의 else finally 구문 (0) 2024.08.21 74 - (파이썬) 예외 처리의 try except 구문 (0) 2024.08.12