티스토리
예외 처리 - try-except
파이썬의 try-except 구문은 예외 처리를 위해 사용됩니다. 예외 처리는 프로그램 실행 중에 발생할 수 있는 오류(예외)를 처리하여 프로그램이 중단되지 않고 계속 실행될 수 있도록 하는 기능입니다. 이러한 처리는 프로그램의 안정성과 사용자 경험을 향상시키는 데 중요합니다.
1. 코드리뷰
try:
# 오류가 발생할 가능성이 있는 코드
except 예외유형 as 변수명:
# 예외 처리 코드
try:
x = 5
y = 0
result = x / y
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
이 코드는 y가 0이므로, ZeroDivisionError 예외가 발생합니다. except 블록이 이를 캐치하고 "0으로 나눌 수 없습니다."를 출력합니다.
2. 다양한 예외 처리
try:
# 코드
except (RuntimeError, TypeError, NameError):
# 여러 예외 처리
else와 finally
else 블록: 모든 except 블록이 실행되지 않을 때 실행됩니다. 즉, 예외가 발생하지 않았을 때 실행할 코드를 담습니다.
finally 블록: 예외 발생 여부와 관계없이 항상 실행됩니다. 주로 리소스 해제 등의 정리 작업에 사용됩니다.
try:
print("try 블록 실행")
except Exception as e:
print(f"예외 발생: {e}")
else:
print("예외가 발생하지 않았습니다.")
finally:
print("항상 실행되는 finally 블록")
2. 파일처리
파일을 다룰 때 발생할 수 있는 예외를 처리하는 방법입니다. 파일이 존재하지 않을 때 FileNotFoundError 예외가 발생합니다.
try:
with open('non_existent_file.txt', 'r') as f:
content = f.read()
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
사용자 입력 처리
사용자 입력을 처리하면서 발생할 수 있는 ValueError를 처리하는 예제입니다. 사용자가 숫자가 아닌 다른 값을 입력했을 때 이를 처리합니다.
try:
user_input = int(input("숫자를 입력하세요: "))
print(f"입력한 숫자는 {user_input}입니다.")
except ValueError:
print("숫자가 아닌 값을 입력하였습니다. 숫자를 입력해주세요.")
리스트 인덱스 처리
리스트에서 발생할 수 있는 IndexError 예외를 처리하는 방법입니다. 사용자가 리스트의 범위를 벗어나는 인덱스에 접근하려 할 때 이를 처리합니다.
my_list = [1, 2, 3]
try:
print(my_list[5])
except IndexError:
print("리스트의 범위를 벗어난 인덱스에 접근하려고 했습니다.")
복수의 예외 처리
하나의 try 블록에서 여러 유형의 예외를 처리하는 방법입니다. 이는 다양한 오류 상황을 하나의 코드 블록에서 처리할 수 있게 해줍니다.
try:
# 다양한 예외 발생 가능성이 있는 코드
# 예를 들어, 0으로 나누기 시도 또는 잘못된 타입의 연산 시도
result = 1 / 0
except (ZeroDivisionError, TypeError) as e:
print(f"오류 발생: {e}")
이러한 예제들은 기본적인 사용법부터 복잡한 상황에서의 예외 처리 방법까지 다양한 시나리오를 보여주며, 블로그 독자들이 try-except 구문을 이해하고 자신의 프로젝트에 적용하는 데 도움이 될 것입니다.
마무리
- 이번 포스팅은 try-except 예외 처리 구문에 대해 알아봤습니다.
궁금한 사항은 lution2@gmail.com로 문의사항 주시면 답변 드리겠습니다.
감사합니다.
'PYTHON 파이썬' 카테고리의 다른 글
파이썬 py7zr 라이브러리의 7z 압축파일 사용 방법 (1) | 2024.03.22 |
---|---|
파이썬 python 파이참 pycharm 설치 하기 (0) | 2024.03.19 |
파이썬 십진수를 이진수로 변환 (0) | 2024.03.17 |
[PYTHON/DATA CAMP] 코딩 연습/공부 사이트 추천 (0) | 2024.02.29 |
Python Convert CSV file to list type(CSV파일 리스트 타입변환) (0) | 2024.02.21 |