728x90
반응형
예외 처리란?
예외 처리는 프로그램이 실행 중에 발생하는 오류를 처리하는 기술입니다. 이를 통해 프로그램이 비정상적으로 종료되는 것을 방지하고, 예외 상황을 대비할 수 있습니다.
try-except문을 사용하여 예외 처리하는 방법 설명
try-except 문 구조:
try:
# 예외가 발생할 수 있는 코드
예외 발생 가능성이 있는 코드
except 예외종류 as 변수:
# 예외 처리 코드
예외가 발생했을 때 처리할 코드
예제:
try:
x = 10 / 0 # ZeroDivisionError 발생
except ZeroDivisionError as e:
print("0으로 나눌 수 없습니다.")
print("에러 메시지:", e)
다양한 예외 처리 기법과 사용 사례 설명
1. 여러 개의 except문 사용하기:
try:
# 파일 열기 시도
file = open("nonexistent.txt", "r")
content = file.read()
file.close()
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
except PermissionError:
print("파일에 접근 권한이 없습니다.")
2. except문에 여러 예외를 함께 처리하기:
try:
x = 10 / 0 # ZeroDivisionError 발생
except (ZeroDivisionError, ArithmeticError) as e:
print("0으로 나눌 수 없거나 산술 연산 오류가 발생했습니다.")
print("에러 메시지:", e)
- 모든 예외 처리하기:
try:
x = 10 / 0 # ZeroDivisionError 발생
except Exception as e:
print("모든 예외를 처리합니다.")
print("에러 메시지:", e)
finally문의 활용
finally문은 예외 발생 여부에 관계없이 항상 실행되는 코드 블록입니다. 주로 리소스 해제나 정리 작업에 활용됩니다.
finally문 구조:
try:
# 예외가 발생할 수 있는 코드
예외 발생 가능성이 있는 코드
except 예외종류 as 변수:
# 예외 처리 코드
예외가 발생했을 때 처리할 코드
finally:
# 항상 실행되는 코드
항상 실행되어야 할 코드
예제:
try:
file = open("myfile.txt", "r")
content = file.read()
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
finally:
print("파일을 닫습니다.")
file.close()
이렇게 예외 처리를 통해 프로그램이 예기치 않은 오류로 중단되는 것을 방지하고, 안정적인 프로그램을 작성할 수 있습니다.
tip. 내장 예외 클래스 종류
- Exception: 모든 내장 예외 클래스의 부모 클래스입니다.
- SyntaxError: 구문 오류가 발생했을 때 일어나는 예외입니다.
- IndentationError: 들여쓰기에 문제가 있을 때 발생하는 예외입니다.
- NameError: 지역 또는 전역 이름이 없을 때 발생하는 예외입니다.
- TypeError: 연산이나 함수가 부적절한 형의 객체에 적용되었을 때 발생하는 예외입니다.
- ValueError: 연산이나 함수가 올바른 형의 인자를 받았지만 값이 적절하지 않을 때 발생하는 예외입니다.
- KeyError: 딕셔너리에서 키가 발견되지 않을 때 발생하는 예외입니다.
- IndexError: 시퀀스에서 인덱스가 범위를 벗어날 때 발생하는 예외입니다.
- FileNotFoundError: 파일이나 디렉터리를 찾을 수 없을 때 발생하는 예외입니다.
- IOError: 입출력 연산 실패 시 발생하는 예외입니다.
- ZeroDivisionError: 0으로 나눌 때 발생하는 예외입니다.
- ArithmeticError: 모든 산술 연산과 관련된 예외의 범주입니다.
- AssertionError: assert 문이 실패할 때 발생하는 예외입니다.
- ImportError: import 문이 모듈을 로드할 수 없을 때 발생하는 예외입니다.
- RuntimeError: 런타임 에러가 발생했을 때 발생하는 예외입니다.
- TypeError: 연산이나 함수가 부적절한 형의 객체에 적용되었을 때 발생하는 예외입니다.
- UnicodeError: 유니코드와 관련된 에러의 범주입니다.
위에 17개는 파이썬의 일부 내장 예외들 중 일부에 불과합니다. 더 많은 예외 클래스들이 있을 수 있고, 사용자 정의 예외 클래스도 만들어 사용할 수 있습니다.
728x90
반응형
'프로그래밍 > python' 카테고리의 다른 글
9. 파이썬 기본 개념 : 제너레이터와 이터레이터 (0) | 2024.03.28 |
---|---|
8. 파이썬 파일 처리: 파일 열기, 읽기, 쓰기 (2) | 2024.03.26 |
6. 파이썬 기본 자료구조: 딕셔너리와 세트 (2) | 2024.03.24 |
5. 파이썬 기본 자료구조: 리스트와 튜플 (0) | 2024.03.24 |
4. 파이썬 기본 문법: 함수 (0) | 2024.03.23 |