Search
⚠️

오류/예외처리

대분류
언어
소분류
Python
유형
Exception
예외처리
try/except
최종 편집 일시
2024/10/27 15:35
생성 일시
2024/07/10 02:19
15 more properties

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
복사