1) 예외처리가 필요한 이유
: 프로그램 실행 중에 발생하는 에러를 미연에 방지
2) try - except 구문
# 원화를 입력받고 환율을 입력받을 때 -> 달러값을 출력
won = input("원화금액을 입력 하세요>>>")
dollar = input("환율을 입력하세요>>>")
try : # 예외가 발생할 수 있는 코드
print(int(won) / int(dollar))
except ValueError as e:
# 예외가 발생했을 때 실행되는 코드로 발생할 수 있는 에러를 직접 적어줄 수 있다.
print("예외가 발생했습니다.", e)
except ZeroDivisionError as e:
print("예외가 발생했습니다.", e)
else:
print("예외가 발생하지 않았을때 실행되는 코드입니다.")
finally: # 파일 닫기
print("예외가 발생하던지, 발생하지 않던지 실행되는 코드")
1) raise 구문 : 에러를 강제로 발생하기 위한 코드
2) 예외 계층 구조
👉 except ZeroDivisionError 와 except ArithmeticError는 다르다.
👉 except Exception : 모든 내장 예외들을 포함
3) 에러 만들기
class 예외(Exception):
def __init__(self):
super().__init__("에러 메세지") # 부모클래스를 호출한다.
4) 실습
# raise 구문을 사용해서 에러를 강제로 발생시켜 보자.
try:
num = int(input("음수를 입력해주세요."))
if num >= 0:
raise ValueError("양수는 입력 불가")
except ValueError as e:
print("에러 발생!", e)
# 에러 만들기
class PositiveNumberError(Exception):
def __init__(self):
super().__init__("양수는 입력 불가")
try:
num = int(input("음수를 입력해주세요."))
if num >= 0:
raise PositiveNumberError
except PositiveNumberError as e:
print("에러 발생!", e)
출처 : 패스트캠퍼스 Python & Django로 시작하는 웹 프로그래밍