반응형
오늘은 파이썬 예외 종류에 대해서 알아보는 시간을 갖겠다.
1. 예외 종류
- 문법적으로는 에러가 없지만, 코드 실행(런타임) 프로세스에서 발생하는 예외
- 크게 8가지로 볼 수 있겠다.
(1) NameError : 참조변수 없음
a = 10
b = 5
print(c) # c가 존재하지 않음
Result
NameError: name 'c' is not defined
(2) ZeroDivisionError : 숫자값을 0으로 나눴을 때 발생
print(100 / 0)
Result
ZeroDivisionError: division by zero
(3) IndexError : 인덱스 범위 오버 (보통 배열 및 리스트)
x = [10, 20, 30]
print(x[5]) # 5는 없는 인덱스
Result
IndexError: list index out of range
(4) KeyError : dictionary를 호출할 때 없는 key값으로 부를 때 발생
dic = {'Name' : 'Ronaldo', 'Age' : 36, 'Team' : 'Juventus' }
print(dic['hobby'])
# print(dic.get('hobby'))
# 딕셔너리를 안전하게 호출하기 위해서는 get() 메소드를 이용하도록 하자.
# get() 메소드는 존재하지 않는 key로 호출할 때는 None을 반환한다.
Result
KeyError: 'hobby'
(5) AttributeError : 모듈, 클래스에 있는 잘못된 속성 사용시에 예외
import time
print(time.month()) # time 클래스에는 month()라는 메소드가 존재하지 않는다.
Result
AttributeError: module 'time' has no attribute 'month'
(6) ValueError : 참조 값이 없을 때 발생
x = [1, 2, 3]
x.remove(10) # 리스트 x에 10은 존재하지 않는다.
Result
ValueError: list.remove(x): x not in list
(7) FileNotFoundError : 파일을 불러올때 존재하지 않으면 발생
f = open('test.txt', 'r') # 해당 디렉토리에 test.txt 파일이 존재하지 않는 경우
Result
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'
(8) TypeError : 서로 다른 타입을 더하거나 할 때 발생
x = [1, 2]
y = (1, 2)
z = 'test'
print(x + y) # x는 리스트, y는 튜플 이므로 서로다른 타입을 합칠 수 없다.
Result
TypeError: can only concatenate list (not "tuple") to list
다음 시간에는 위와 같이 발생한 에러에 대해서 처리하는 방법에 대해서 알아보겠다.
반응형
'Programming > Python' 카테고리의 다른 글
[Python] 파이썬 Fast API 개발 환경 설정 및 Docker와 Github Action으로 CI/CD 구현하기 (0) | 2024.12.02 |
---|---|
[Python] 파이썬 Comprehension 에 대해서 알아보자. (1) | 2021.10.18 |
[Python] 파이썬 모듈과 패키지에 대해서 알아보자. (0) | 2021.07.31 |
[Python] 파이썬 파일 쓰기(Write)에 대해서 알아보자. (0) | 2021.07.31 |
[Python] 파이썬 파일 읽기(Read)에 대해서 알아보자. (0) | 2021.07.31 |