반응형
파이썬에서 예외 처리(Exception Handling)는 프로그램 실행 중 발생할 수 있는 오류를 처리하기 위한 기법입니다. 예외 처리 덕분에 오류가 발생해도 프로그램이 비정상적으로 종료되지 않고, 지정된 대체 작업을 수행하거나 오류 메시지를 사용자에게 적절히 제공할 수 있습니다.
기본적인 예외 처리 구문
파이썬에서 예외 처리는 try, except, else, finally 구문을 사용합니다.
- try: 예외가 발생할 수 있는 코드를 작성합니다.
- except: 예외가 발생했을 때 처리할 코드를 작성합니다.
- else: 예외가 발생하지 않았을 때 실행할 코드를 작성합니다.
- finally: 예외 발생 여부와 상관없이 항상 실행되는 코드를 작성합니다.
기본 구조
try:
# 예외가 발생할 수 있는 코드
except ExceptionType as e:
# 예외 처리 코드
else:
# 예외가 발생하지 않았을 경우 실행되는 코드
finally:
# 항상 실행되는 코드 (자원 정리 등)
예시 1: 0으로 나누기 예외 처리
try:
x = 10 / 0 # 0으로 나누기 시도
except ZeroDivisionError as e:
print(f"오류 발생: {e}")
else:
print("예외가 발생하지 않았습니다.")
finally:
print("예외 처리 완료.")
설명: 0으로 나누기를 시도하면 ZeroDivisionError가 발생하고, 예외 처리 코드가 실행됩니다.
예시 2: 파일 열기 예외 처리
try:
with open("non_existent_file.txt", "r") as f:
content = f.read()
except FileNotFoundError as e:
print(f"파일을 찾을 수 없습니다: {e}")
else:
print("파일 읽기 성공")
finally:
print("파일 처리 완료.")
설명: non_existent_file.txt라는 파일이 존재하지 않아 FileNotFoundError가 발생합니다. 예외 처리에서 오류 메시지가 출력됩니다.
예시 3: 사용자 입력에 대한 예외 처리
try:
number = int(input("숫자를 입력하세요: ")) # 숫자로 변환
except ValueError as e:
print(f"유효하지 않은 숫자 입력: {e}")
else:
print(f"입력한 숫자는 {number}입니다.")
finally:
print("입력 처리 완료.")
설명: 사용자가 숫자가 아닌 값을 입력할 경우 ValueError가 발생하고 예외 처리 코드가 실행됩니다.
예외 처리에서 주의할 점
- 구체적인 예외를 처리하는 것이 좋습니다. except Exception처럼 모든 예외를 처리하면, 어떤 오류가 발생했는지 추적하기 어려울 수 있습니다.
- 예외 처리 코드 내에서 불필요한 로직을 작성하지 않도록 하여 코드가 복잡해지지 않도록 합니다.
- finally 구문은 자원 해제나 파일 닫기 등, 반드시 실행되어야 하는 코드에 유용합니다.
이러한 예외 처리 기법을 활용하면 프로그램이 예기치 않은 오류로 종료되지 않고 안정적으로 동작할 수 있습니다.
반응형
'프로그래밍 > [ Python ]' 카테고리의 다른 글
[Python] DataFrame (1) (0) | 2024.11.18 |
---|---|
[Python] JSON 처리 (1) | 2024.11.15 |
[Python] map (0) | 2024.11.13 |
[Python] List Comprehension (0) | 2024.11.12 |
[Python] Files (파일 관련) (1) | 2024.02.26 |