728x90
예외(exception)란 코드를 실행하는 중에 발생하는 예기치 못한 상황을 의미합니다.
다음과 같은 함수를 가정해 보겠습니다.
def div(x):
return 20 // x
인자 x에 4를 넣으면 결과는 5가 나오게 됩니다.
정상적인 출력이죠, 하지만 4가 아닌 0을 넣는다면 결과는 어떻게 될까요?
def div(x):
return 20 // x
print(div(0))
결과)
ZeroDivisionError: integer division or modulo by zero
0으로는 나눗셈을 할 수 없다고 나옵니다.
이렇게 예상치 못한 상황에 코드가 멈추지 않고 계속 실행되도록 하기위해 우리는 예외처리를 해줄 수 있습니다.
# try~except 사용하기
try~except구문을 사용하면 예상치 못한 상황에도 코드가 멈추지 않고 작동할 수 있습니다.
기본형식은 다음과 같습니다.
try:
실행할 코드
except:
예외일때 실행할 코드
숫자를 0으로 나누었을때의 상황으로 돌아가서 try~except문을 실행해 보겠습니다.
def div(x):
return 20 // x
try:
print(div(0))
except:
print('나눌 수 없습니다.')
결과)
나눌 수 없습니다.
원리는 다음과 같습니다.
# 특정 상황만 예외처리하기
모든 상황(else)가 아닌 특정 상황(elif)만 예외처리하는 방법이 있습니다.
기본형식은 다음과 같습니다.
try:
실행할 코드
except 예외이름:
예외가 발생했을 때 처리하는 코드
입력을 받을 데이터의 개수를 정해주지 않을때 사용할 수 있습니다.
예시)
while True:
try:
print(input())
except EOFError:
print('입력이 끝났습니다.')
break
다음과 같은 문제에서 예시를 찾을 수 있습니다.
파이썬의 input()은 입력값이 주어지지 않으면 EOFError를 발생시키는데 EOFError가 발생할때 while문을 끝내는 방법입니다.
728x90
'[Python]' 카테고리의 다른 글
[Python] 딕셔너리 최댓값, 최솟값 구하기 / 최댓값을 가지는 key 구하기 (0) | 2023.10.05 |
---|---|
[Python] 파이썬 정규표현식(regular expression) (0) | 2023.07.04 |
[Python] 파이썬 깊은복사(DeepCopy) (0) | 2022.09.15 |
[Python] 파이썬 : 람다(lambda) 함수 (0) | 2022.08.19 |
[Python] 파이썬 진수 변환 hex(), oct(), bin(), int() (0) | 2022.08.07 |