Exception (오류)
ValueError
•
부적절한 값을 가진 인자를 받았을 때 발생하는 에러
•
미리 타입 정의가 이루어진 함수에 타입이 맞지 않는 값을 넣게 되면 오류가 발생
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-100-b224d4fc151f> in <module>
1 lst = ['a', 'b', 'c']
----> 2 lst.index('z')
ValueError: 'z' is not in list
Python
복사
IndexError
•
인덱스 범위를 벗어나는 경우에 발생하는 에러
•
리스트, 튜플, 딕셔너리 등 이터러블 자료구조들에서 주로 발생
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-98-48e887951eec> in <module>
1 tup = tuple(['a', 'b', 'c'])
----> 2 tup[5]
IndexError: tuple index out of range
Python
복사
SyntaxError
•
파이썬 문법 오류가 발생하는 경우에 발생하는 에러
File "<ipython-input-96-dd8c17c737f2>", line 3
if a == 2
^
SyntaxError: invalid syntax
Python
복사
NameError
•
변수 이름을 찾을 수 없는 경우에 발생하는 에러
•
변수를 참조, 대입 등을 진행할 때 해당 변수의 위치를 찾지 못할 경우 발생
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-80-c4404d400413> in <module>
----> 1 a + b + c
NameError: name 'b' is not defined
Python
복사
ZeroDivisionError
•
0으로 나누려는 경우에 발생하는 에러
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
<ipython-input-81-cd759d3fcf39> in <module>
----> 1 10 / 0
ZeroDivisionError: division by zero
Python
복사
FileNotFoundEror
•
파일이나 디렉터리에 접근하려 할 때, 해당 파일이나 디렉터리가 없는 경우에 발생하는 에러
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-82-d491f2113940> in <module>
----> 1 open('test.py', 'r')
FileNotFoundError: [Errno 2] No such file or directory: 'test.py'
Python
복사
TypeError
•
잘못된 타입을 전달했을 때 발생하는 에러
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-83-cbdbd6d77556> in <module>
----> 1 1 + '11'
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Python
복사
AttributeError
•
Attribute(속성)을 참조 또는 대입이 실패한 경우에 발생하는 에러
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-84-50d312fed208> in <module>
1 lst = [1,2,3,4,5]
2
----> 3 lst.appe(1)
AttributeError: 'list' object has no attribute 'appe'
Python
복사
KeyError
•
딕셔너리에서 접근하려는 키 값이 없을 때 발생하는 에러
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-85-c698544e2324> in <module>
1 dic = {'a':1, 'b':2, 'c':3}
2
----> 3 dic['z']
KeyError: 'z'
Python
복사
예외처리
try/except
try:
# 로직, 기능
except <오류 종류>:
# try문에서 Exception(오류)가 발생할 때, 실행됨
Python
복사
try:
int('abc')
except Exception as e:
print(f'오류명: {type(e)} / 오류 메세지: {e}')
Python
복사
else/finally
try:
# 로직, 기능
except <오류종류>:
# try문에서 오류가 발생할때, 실행
else:
# try문이 성공할 때 발생
finally:
# try문의 결과와 상관없이 실행
Python
복사
try:
x = 11 + int('abc')
print(x)
except:
print('except ~~')
else:
print('else ~~')
finally:
print('finally ~~')
Python
복사
assert
•
조건이 False일 때, 발생하는 에러
x = 5
assert x % 3 == 0, '3의 배수가 아닙니다.'
print('3의 배수입니다.')
Python
복사
raise error
try:
x = 5
if x % 3 != 0:
raise Exception('3의 배수가 아닙니다.')
print('3의 배수 입니다.')
except Exception as e:
print(f'에러 메세지: {e}')
Python
복사