파이썬에서 발생하는 에러는 크게 두 종류로 나눌 수 있습니다.
1) 코드 실행 전에 잡는 에러: 구문 오류
2) 코드 실행 중에 잡는 에러: 예외
참고로 코드 실행 중에 발생하는 에러를 예외(exception)라고 부릅니다. 예외의 종류는 굉장히 다양합니다.
코드 실행 전에 잡는 오류
SyntaxError: 구문 오류
SyntaxError는 파이썬 문법을 지키지 않았을 때 발생하는 에러입니다. 구문 오류가 있을 때는 프로그램이 실행조차되지 않습니다. 그래서 비교적 쉽게 문제점을 발견하여 처리할 수 있습니다. 파이썬에서 for문의 시작부의 끝에는 항상 콜론을 넣어줘야합니다. 생략하면 어떤 결과가 생기는지 확인해보겠습니다.
예상한대로 SyntaxError가 발생했습니다.
코드 실행 중에 잡는 오류
IndexError: 인덱스 오류
인덱스의 범위를 초과했을 때 발생하는 오류입니다.
a[4]까지 밖에 없는데 a[6]을 선택하였기 때문에 IndexError가 발생했습니다.
NameError: 이름 오류
정의되지 않은 변수나 함수를 참조하려고 할 때 발생하는 예외입니다.
TypeError: 타입 오류
int 형 데이터와 str 형 데이터를 더하려고 했더니 다음과 같은 오류 메시지가 떴습니다.
바로 TypeError입니다.
IndentationError: 들여쓰기 오류
말 그대로 들여쓰기를 제대로 하지 않았을 때 발생하는 에러입니다. 만약 for 문을 사용하는데 들여쓰기를 적절하게 하지 않는다면 IndentationError가 발생합니다.
ValueError: 값 오류
"7.23" 이라는 문자열을 int 함수에 넣어주면 7만 출력될 것 같지만, ValueError가 발생합니다.
KeyError: 키 오류
딕셔너리에서 존재하지 않는 키에 접근할 때 발생하는 오류입니다.
ZeroDivisionError: 0으로 나누기 오류
파이썬에서는 어떤 숫자를 0으로 나누려고 할 때 오류를 발생시킵니다.
OverflowError: 오버플로우 오류
산술 연산의 결과가 표현하기에 너무 클 때 발생합니다.
AttributeError: 속성 오류
어떤 모듈에 존재하지 않는 속성을 사용할 때는 속성 오류가 발생합니다. time 모듈에 sleep()은 있지만 wake()는 없기 때문입니다.
ModuleNotFoundError: 모듈 미설치 오류
필요한 모듈(라이브러리)가 해당 개발환경에 설치되어 있지 않을 때 발생하는 오류입니다.
FileNotFoundError: 파일 못 찾음 오류
파일을 찾지 못할 때 발생하는 오류입니다. test.txt 라는 메모장 파일을 열어서 안에 있는 내용을 읽으려고 했는데 오류가 발생했습니다. test.txt를 현재 작업 경로에서 못 찾겠다는 뜻입니다.
IOError: 입출력 오류
입출력과 관련된 문제가 발생했을 때 발생하는 예외입니다.
AssertionError
assert 문이 실패할 때 발생하는 예외입니다.
KeyboardInterrupt
사용자가 프로그램을 중단시키기 위해 Ctrl + C와 같은 신호를 보냈을 때 발생하는 예외입니다.
참고자료
'Dev > python' 카테고리의 다른 글
[flask+jinja2] 서버에서 받은 html 요소가 html 문서에서 제대로 표현되게 하려면? (0) | 2022.02.06 |
---|---|
[flask+jinja2] break 사용하기 (2) | 2022.02.05 |
[python] SyntaxError: Non-ASCII character '\xec' 에러 해결법 (0) | 2022.01.14 |
[PySide6] DeprecationWarning: Fuction: 'globalPos() const' is marked as deprecated 경고 메시지 출력 안되게 하기 (0) | 2021.11.29 |
[pyqt5] 프로그램창을 항상 가장 위에 있게 하면서 동시에 타이틀 바도 없게 하려면? (3) | 2021.06.09 |
[python] python 환경 변수 설정하기 (AppData 폴더가 왜 없지 하시는 분들을 위해) (2) | 2021.05.25 |
[python] datetime 모듈로 일, 시간, 분, 초 더하거나 빼는 방법, timedelta (2) | 2021.05.21 |
[flask] rows에서 각 row가 몇 번째 것인지 보여주고 싶다면? (0) | 2021.05.15 |