일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 유닉스
- 뉴턴역학
- 소프트웨어공학
- python
- kotlin
- 시스템
- write by chatGPT
- 자바네트워크
- write by GPT-4
- 웹 크롤링
- Database
- android
- 역학
- GPT-4's answer
- 파이썬
- GIT
- 코틀린
- oracle
- 자바암호
- JVM
- 리눅스
- lombok
- 고전역학
- 인프라
- chatGPT's answer
- Spring boot
- 자바
- flet
- Java
- NIO
- Today
- Total
Akashic Records
6.2 에러 종류와 대처법 본문
파이썬에서 발생할 수 있는 주요 에러 종류와 그에 대한 대처 방법을 설명드리겠습니다. 파이썬 에러는 크게 두 가지로 나눌 수 있습니다: 구문 에러(Syntax Errors)와 예외(Exceptions).
1. SyntaxError: 문법 오류로 인한 에러입니다. 코드의 문법을 확인하고 수정해야 합니다.
# 잘못된 문법
if x 10
대처법: 문법을 올바르게 수정합니다.
if x == 10:
2. NameError: 정의되지 않은 변수나 함수를 사용할 때 발생하는 에러입니다.
print(undefined_variable)
대처법: 변수나 함수의 정의를 확인하고 수정합니다.
3. TypeError: 잘못된 데이터 타입에 대한 연산이나 함수 호출을 시도할 때 발생하는 에러입니다.
x = "5" + 3
대처법: 적절한 데이터 타입으로 변환하거나 수정합니다.
python
Copy code
x = int("5") + 3
4. ZeroDivisionError: 0으로 나눌 때 발생하는 에러입니다.
try:
result = 10 / x
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
5. FileNotFoundError: 존재하지 않는 파일을 열려고 할 때 발생하는 에러입니다.
with open("nonexistent_file.txt", "r") as f:
content = f.read()
대처법: 파일 경로를 확인하고, 필요한 경우 예외 처리를 사용합니다.
try:
with open("nonexistent_file.txt", "r") as f:
content = f.read()
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
6. ValueError: 잘못된 값이 전달되었을 때 발생하는 에러입니다.
int("abc")
대처법: 값을 확인하고, 필요한 경우 예외 처리를 사용합니다.
try:
int_value = int(user_input)
except ValueError:
print("숫자를 입력해야 합니다.")
7. IndexError: 리스트, 튜플 등의 시퀀스에서 인덱스 범위를 벗어난 요소에 접근하려고 할 때 발생하는 에러입니다.
my_list = [1, 2, 3]
print(my_list[3])
대처법: 인덱스가 유효한 범위 내에 있는지 확인하고, 필요한 경우 예외 처리를 사용합니다.
try:
print(my_list[3])
except IndexError:
print("인덱스 범위를 벗어났습니다.")
8. KeyError: 딕셔너리에서 존재하지 않는 키에 접근하려고 할 때 발생하는 에러입니다.
my_dict = {"a": 1, "b": 2, "c": 3}
print(my_dict["d"])
대처법: 키가 딕셔너리에 존재하는지 확인하고, 필요한 경우 예외 처리를 사용합니다.
try:
print(my_dict["d"])
except KeyError:
print("키가 딕셔너리에 존재하지 않습니다.")
9. AttributeError: 객체에 존재하지 않는 속성이나 메서드를 사용하려고 할 때 발생하는 에러입니다.
my_string = "Hello, world!"
my_string.non_existent_method()
대처법: 객체의 속성이나 메서드가 올바른지 확인하고, 필요한 경우 예외 처리를 사용합니다.
try:
my_string.non_existent_method()
except AttributeError:
print("속성이나 메서드가 존재하지 않습니다.")
10. ImportError: 모듈을 임포트할 때 발생하는 에러입니다. 이 에러는 잘못된 모듈 이름, 경로 문제 또는 누락된 설치로 인해 발생할 수 있습니다.
import nonexistent_module
대처법: 모듈 이름, 경로를 확인하고, 필요한 경우 모듈을 설치하거나 예외 처리를 사용합니다.
try:
import nonexistent_module
except ImportError:
print("모듈을 찾을 수 없습니다.")
위의 예시처럼 대부분의 에러는 코드를 수정하여 해결할 수 있습니다. 그러나 몇 가지 경우에는 예외 처리를 사용하여 프로그램이 중단되지 않고 적절한 대처를 하도록 할 수 있습니다. 예외 처리는 위에서 설명한 try, except, finally, else 블록을 사용하여 구현할 수 있습니다.
'Python for Beginners' 카테고리의 다른 글
7.1 시간과 날짜 (0) | 2023.03.23 |
---|---|
6.3 디버깅 기술 (0) | 2023.03.21 |
6.1 예외 처리 (0) | 2023.03.21 |
5.5 디자인 패턴 (0) | 2023.03.20 |
5.4 캡슐화 (0) | 2023.03.20 |