반응형
Python을 사용하다 보면 프로그램 실행 중 예상치 못한 오류가 발생할 수 있습니다. 이런 오류를 그대로 두면 프로그램이 중단되지만, try, except 문법을 사용하면 예외 상황을 처리하여 프로그램이 계속 실행되도록 만들 수 있습니다. 이번 포스팅에서는 Python의 try, except 구문의 기본 문법부터 다양한 예외 처리 예제까지 초보자도 쉽게 따라 할 수 있도록 정리해보았습니다.
1. try, except 기본 문법
1. 구조
try:
실행할 코드
except 예외타입:
예외 발생 시 실행할 코드
2. 예제: 0으로 나누기
try:
result = 10 / 0
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
실행 결과 (터미널)
0으로 나눌 수 없습니다.
2. 다양한 예외 처리 예제
1. ValueError 처리
try:
num = int(input("숫자를 입력하세요: "))
except ValueError:
print("숫자가 아닌 값을 입력했습니다.")
2. IndexError 처리
my_list = [1, 2, 3]
try:
print(my_list[5])
except IndexError:
print("리스트 범위를 벗어났습니다.")
3. KeyError 처리
my_dict = {"name": "Alice"}
try:
print(my_dict["age"])
except KeyError:
print("해당 키가 존재하지 않습니다.")
3. 다중 예외 처리와 finally
1. 여러 예외 처리
try:
x = int("a")
y = 10 / 0
except ValueError:
print("형 변환 오류")
except ZeroDivisionError:
print("0으로 나누기 오류")
2. 여러 예외를 한 번에 처리
try:
x = int("a")
except (ValueError, TypeError):
print("입력값 오류")
3. finally 문
- 예외 발생 여부와 관계없이 항상 실행됨
try:
print("작업 시작")
1 / 0
except ZeroDivisionError:
print("예외 발생")
finally:
print("작업 종료")
실행 결과
작업 시작
예외 발생
작업 종료
4. 사용자 정의 예외와 raise
1. raise 키워드 사용
def check_age(age):
if age < 0:
raise ValueError("나이는 0 이상이어야 합니다.")
return age
try:
check_age(-1)
except ValueError as e:
print("오류 발생:", e)
2. 사용자 정의 예외 클래스
class CustomError(Exception):
pass
try:
raise CustomError("사용자 정의 오류 발생")
except CustomError as e:
print(e)
5. 추가 팁 및 참고 사항
- 예외 이름 없이 except:만 사용할 경우 모든 예외를 처리하지만, 구체적인 예외를 명시하는 것이 좋습니다.
- as 키워드로 예외 객체를 받아서 메시지를 출력하거나 로그 처리에 활용할 수 있습니다.
- 예외 처리는 프로그램의 안정성과 사용자 경험 향상에 중요합니다.
6. 요약 및 마무리
이번 포스팅에서는 Python의 예외 처리 문법인 try, except, finally, raise 구문을 살펴보았습니다. 기본적인 문법부터 다중 예외 처리, 사용자 정의 예외까지 다양한 상황에 적용할 수 있으며, 프로그램의 예외 상황을 유연하게 대응할 수 있게 도와줍니다. 예외를 무시하지 않고 제대로 처리하는 습관은 견고하고 신뢰할 수 있는 코드를 작성하는 데 매우 중요합니다.
7. 관련 글 링크
- 관련 글: Python에서 ValueError 오류가 발생하는 원인과 해결 방법
반응형
'파이썬' 카테고리의 다른 글
[Python] 날짜와 시간 다루기 (datetime, time 모듈 사용법) (0) | 2025.04.04 |
---|---|
[Python] 클래스(class)와 객체(object) 기본 개념 설명하기 (0) | 2025.04.04 |
[Python] list, set, tuple, dict 차이점과 선택 기준 (0) | 2025.04.03 |
[Python] 파일 읽기/쓰기 기본 사용법 (open, read, write) (0) | 2025.04.03 |
[Python] ValueError 오류가 발생하는 원인과 해결 방법 (0) | 2025.04.03 |
댓글