파이썬에서 발생하는 에러는 크게 두 종류로 나눌 수 있습니다.
1) 코드 실행 전에 잡는 에러: 구문 오류
2) 코드 실행 중에 잡는 에러: 예외
참고로 코드 실행 중에 발생하는 에러를 예외(exception)라고 부릅니다. 예외의 종류는 굉장히 다양합니다.
코드 실행 전에 잡는 오류
1. SyntaxError: 구문 오류
SyntaxError는 파이썬 문법을 지키지 않았을 때 발생하는 에러입니다. 구문 오류가 있을 때는 프로그램이 실행조차되지 않습니다. 그래서 비교적 쉽게 문제점을 발견하여 처리할 수 있습니다. 파이썬에서 for문의 시작부의 끝에는 항상 콜론을 넣어줘야합니다. 생략하면 어떤 결과가 생기는지 확인해보겠습니다.
예상한대로 SyntaxError가 발생했습니다.
코드 실행 중에 잡는 오류
1. IndexError: 인덱스 오류
인덱스의 범위를 초과했을 때 발생하는 오류입니다.
a[4]까지 밖에 없는데 a[6]을 선택하였기 때문에 IndexError가 발생했습니다.
2. TypeError: 타입 오류
int 형 데이터와 str 형 데이터를 더하려고 했더니 다음과 같은 오류 메시지가 떴습니다.
바로 TypeError입니다.
3. FileNotFoundError: 파일 못 찾음 오류
test.txt 라는 메모장 파일을 열어서 안에 있는 내용을 읽으려고 했는데 오류가 발생했습니다.
test.txt를 못 찾겠다는 뜻입니다.
4. IndentationError: 들여쓰기 오류
말 그대로 들여쓰기를 제대로 하지 않았을 때 발생하는 에러입니다. 만약 for 문을 사용하는데 들여쓰기를 적절하게 하지 않는다면 IndentationError가 발생합니다.
5. ValueError: 값 오류
"7.23" 이라는 문자열을 int 함수에 넣어주면 7만 출력될 것 같지만, ValueError가 발생합니다.
6. KeyError: 키 오류
딕셔너리에서 존재하지 않는 키에 접근할 때 발생하는 오류입니다.
7. ZeroDivisionError: 0으로 나누기 오류
파이썬에서는 어떤 숫자를 0으로 나누려고 할 때 오류를 발생시킵니다.
8. AttributeError: 속성 오류
어떤 모듈에 존재하지 않는 속성을 사용할 때는 속성 오류가 발생합니다. time 모듈에 sleep()은 있지만 wake()는 없기 때문입니다.
9. ModuleNotFoundError: 모듈 미설치 오류
필요한 모듈(라이브러리)가 해당 개발환경에 설치되어 있지 않을 때 발생하는 오류입니다.
참고자료
[1] https://docs.python.org/3/tutorial/errors.html
'코딩 > python' 카테고리의 다른 글
[python+plotly] 그래프 x축, y축 값 범위 설정하기 (0) | 2022.03.18 |
---|---|
[python+plotly] px.scatter 플롯에 추세선 넣기 (0) | 2022.03.17 |
[python] 파이썬스럽게 코딩하는 법, PEP8 정리 (4) | 2022.03.15 |
[python] SyntaxError: Non-ASCII character '\xec' 에러 해결법 (0) | 2022.01.14 |
[python] 파이썬 에러 종류 정리(SyntaxError, TypeError, IndexError 등) (2) | 2021.06.30 |
[python] python 환경 변수 설정하기 (AppData 폴더가 왜 없지 하시는 분들을 위해) (2) | 2021.05.25 |
[python] datetime 모듈로 일, 시간, 분, 초 더하거나 빼는 방법 (2) | 2021.05.21 |
[python] join 함수로 리스트의 요소들 하나의 문자열로 합치기 (0) | 2021.05.08 |
[python] 딕셔너리 객체의 setdefault() 메소드 사용법 (0) | 2021.04.29 |
파이썬과 같은 인터프리터 언어는 컴파일과정이 없어서 문법오류(Syntax error)와 예외(Exception)으로 구분하는데 개념은 실행전/실행후 구분으로 똑같습니다.
간단히 말하면 여기서 언급하는 모든 에러가 실행전에 나타나는 에러라면 게시글을 syntax error 로 고치고 syntax error의 종류로 언급하면 좋을 것 같습니다.
참고
https://docs.python.org/3/tutorial/errors.html 주소 수정/삭제 답글