- 파이썬으로 코딩해보면 다양한 에러를 보게 됩니다. 에러는 코드를 완전히 수정해야 하거나 코드에 추가적으로 수정하여 에러를 해결할 수 있습니다. 16장에서는 파이썬 에러 종류를 정리하고, 에러 해결 방법을 학습합니다. 이를 위해 에러 종류를 알아보고, 코드에 에러가 발생하면 스스로 처리할 수 있도록 연습합니다.
1. 에러와 예외
- 예외 : 파이썬에는 발생하는 모든 에러들을 묶어서 '예외' 라고 부릅니다.
- SyntaxError, TypeError, NameError, IndexError, ValueError, KeyError
- SyntaxError는 파이썬 문법을 잘못 사용해서 발생한 에러이고 나머지는 문법을 잘못 사용한 에러가 압니다.
- SyntaxError 발생 원인
- print() 함수의 인수에 따옴표가 빠져있다.
- 괄호가 잘못 되었습니다.
- if 줄 끝에 콜론(:)이 빠졌어요
- += 기호는 붙여서 써야 합니다.
- =< 기호는 없습니다. < = 이라고 써야합니다.
2. 에러 종류
AttributeError
- 모듈에 있는 속성을 잘못 사용했을 때나, 클래스에 있는 속성을 잘못 사용했을 때 발생
IndexError
- 인덱스를 잘못 사용하여 범위를 벗어난 경우에 발생하는 에러입니다.
- 주로 시퀀스 자료형(순서가 있는 자료형)에서 발생
KeyError
- 집합과 사전에서 발생합니다.
- 빈 집합에서 pop() 메소드를 적용하거나, 집합에 없는 원소를 remove()하면 KeyError가 발생
- 사전에 없는 키를 이용하면 KeyError가 발생
ValueError
- 어떤 값을 가져올 수 없는 경우에 발생하는 에러입니다.
- 리스트에 없는 원소 x에 대해서 remove(x)하거나 또는 index(x)속성을 적용하면 ValueError발생
- 튜플도 없는 원소의 인덱스를 알기 위해 index(x) 속성을 적용하면 ValueError가 발생
FileNotFoundError
- 없는 파일을 open()할 떄 발생하는 에러입니다.
TypeError
- 자료형에 맞는 연산을 수행하지 않는 경우에 발생
NameError
- 만들지 않은 변수를 사용하려는 경우에 발생
3. 예외 처리 기초
- 에러가 발생하는 부분에 예외처리 코드를 추가하여 코드를 깔끔하게 정리할 수 있습니다.
- 예외처리는 반드시 try 키워드로 시작해야하고 try 구문 아래에는 구문이 1개이상 올수 있습니다.
- except 구문이 에러가 발생했을 때 어떻게 처리해야 하는지를 명시하는 부분입니다.
- 그 외에 else, finally 구문이 있을 수 있습니다.
코드에 에러가 한 개인 경우의 예외 처리
코드에 에러가 여러 개인 경우의 예외
except 옆에 아무 에러도 적지 않는 경우
- 아무 것도 적지 않을 수도 있고, except 옆에 Exception이라고 넣을 수 도 있다
except ~ as 구문
- except ~ as 표현을 이용해서 에러 메시지를 출력해 볼 수 있다.
except : pass 구문
- 어떤 에러가 발생하더라도 아무 일도 하지 않겠다는 뜻입니다.
4. else 블록 이해하기
- else 구문이 있는 경우, 에러가 발생하지 않은 경우에 수행되는 구문입니다.
5. finally 블록 이해하기
- finally 구문은 예외와 상관없이 무조건 수행되는 코드 블록입니다.
- try~ finally 만 있는 구문
6. 예외를 직접 발생시키기 - raise
- 예외를 발생시키는 키워드 : raise
7. 정리
- 파이썬 에러는 크게 SyntaxError와 다른 에러들로 나뉜다.
- KeyError, ValueError, FileNotFoundError의 경우는 조심하더라도 발생하기 쉬운 에러이다.
'Python 참조 > Python 책정리' 카테고리의 다른 글
[python 문법] dictionary 정리 (0) | 2022.10.19 |
---|---|
Chapter17 클래스와 객체 지향 개념 (0) | 2022.05.04 |
Chapter15 모듈 (0) | 2022.05.04 |
Chapter14 파일 입출력 (0) | 2022.05.04 |
Chapter13 함수 (0) | 2022.05.04 |