파이썬 코딩을 하는 동안 프로그램 중간에 잘 못된 오류가 있으면 파이썬은 자동으로 오류를 보여주고 프로그램을 중지시킵니다.
가장 대표적인 예가 숫자를 0으로 나누게 되면 ZeroDivisonError: division by zero라는 오류 메시지를 보여줍니다.
하지만, 사용자가 프로그램이 오류를 예외로 정하고 중지되지 않고 계속 실행되기를 원할 때가 있습니다. 이렇게 오류를 처리하여 프로그램을 계속 실행하고 싶을 때 except와 try를 사용합니다.
기본적인 구조
try:
...
except 오류:
...
ZeroDivisonError: division by zero의 오류를 예외로 정한 예제
try:
1/0
except ZeroDivisonError:
print('division by zero')
1/0 연산을 실행하면 except가 ZeroDivisionError 형태의 오류를 division by zero로 출력합니다.
위의 예제는 다음과 같이 사용할 수도 있습니다.
except 오류 as e: 에서 'as e'는 e는 오류 메시지 변수이며 e를 출력하면 오류 메시지를 출력합니다.
위의 try, except 구조는 여러 개의 오류를 확인할 수 있으며 else를 같이 사용할 수 있습니다.
try:
...
except 오류 1:
실행 1
except 오류 2:
실행 2
else:
실행 3
try의 실행을 한 후 오류 1이 있으면 해당 실행 1을, 오류 2가 있으면 실행 2를, exception이 업으면 else 다음의 실행 3을 실행됩니다.
예제
숫자 2개를 입력해서 첫 번째 숫자를 두 번째 숫자로 나눕니다. 0으로 나누면 "You have tried to divide by zero!"를 출력하고, 0이 아닌 숫자로 나누면 "You didn't divide by zero.!"를 출력합니다.
try:
a=int(input("Enter the first number: "))
b=int(input("Enter the second number: "))
print(a/b)
except ZeroDivisionError:
print("You have tried to divide by zero!")
else:
print("You didn't divide by zero.!")
첫 번째 숫자는 1, 두 번째 숫자는 0을 입력해 보겠습니다.
1/0으로 "You have tried to divide by zero!"을 출력합니다.
첫 번째 숫자는 1, 두 번째 숫자는 1을 입력해 보겠습니다.
1/1의 계산 값인 1과 "You didn't divide by zero.!"를 출력합니다.
오늘은 파이썬의 exception에 대해서 알아봤습니다.
'초보 코딩 배우기' 카테고리의 다른 글
파이썬 time 모듈 (14) | 2021.06.01 |
---|---|
파이썬 string 포멧 출력하기 (12) | 2021.05.24 |
파이썬 모듈 (4) | 2021.05.18 |
파이썬 while loop (6) | 2021.05.10 |
파이썬 파일 입출력 (10) | 2021.05.03 |
파이썬 인덱싱과 슬라이싱 (11) | 2021.04.26 |
파이썬 함수 (19) | 2021.04.19 |
파이썬 dictionary (14) | 2021.04.11 |
댓글