Programming/Python

[Python] 파이썬 예외 종류에 대해서 알아보자.

빙기때침식곡 2021. 8. 19. 00:43
반응형

  이미지 출처 www.python.org

 

오늘은 파이썬 예외 종류에 대해서 알아보는 시간을 갖겠다.

 

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

 

 

다음 시간에는 위와 같이 발생한 에러에 대해서 처리하는 방법에 대해서 알아보겠다.

반응형