Python에서 오류가 발생할때 예외 처리 방식에 대해 알아봅시다.
예외 처리로는 크게
try-except / try-except-else / try-except-finally / try-except-else-finally 네 가지로 예외 처리가 가능하다.
아래는 각 예외 처리 방식 예제이다.
def try_except_test(num):
try:
1 + num
print("No Error Start try")
except:
print("Error Start except")
def try_except_else_test(num):
try:
1 + num
print("No Error Start try")
except:
print("Error Start except")
else:
print("No Error Start else")
def try_except_finally_test(num):
try:
1 + num
print("No Error Start try")
except:
print("Error Start except")
finally:
print("No Error and Error Start finally")
def try_except_else_finally_test(num):
try:
1 + num
print("No Error Start try")
except:
print("Error Start except")
else:
print("No Error Start else")
finally:
print("No Error and Error Start finally")
1. try_except_test
해당 함수는 기본적인 try-except 구조를 사용한다.
try 블록에서 입력 값 num을 1과 더하려 시도한다.
만약 오류가 발생한다면 except 블록으로 넘어간다.
2. try_except_else_test
해당 함수는 try-except-else 구조를 사용한다.
else 블록은 try가 정상적으로 완료된다면 실행된다.
만약 오류가 발생한다면 except 블록으로 넘어간다.
3. try_except_finally_test
해당 함수는 try-except-finally 구조를 사용한다.
finally 블록은 오류가 발생해도 여부 관계없이 무조건 실행한다.
리소스를 해제하거나 데이터를 저장하는 등의 마지막 정리를 하는데 유용하다.
4. try_except_else_finally_test
해당 함수는 try-except-else-finally 구조를 사용한다.
else 블록은 try가 정상적으로 완료된다면 실행된다.
오류와 상관없이 finally가 실행된다.
각 함수 실행 예제
try_except_test(1)
# 출력: No Error Start try
try_except_else_test(1)
# 출력: No Error Start try
# No Error Start else
tey_except_finally_test(1)
# 출력: No Error Start try
# No Error and Error Start finally
try_except_else_finally_test(1)
# 출력: No Error Start try
# No Error Start else
# No Error and Error Start finally
try_except_test("1")
# 출력: Error Start except
try_except_else_test("1")
# 출력: Error Start except
tey_except_finally_test("1")
# 출력: Error Start except
# No Error and Error Start finally
try_except_else_finally_test("1")
# 출력: Error Start except
# No Error and Error Start finally
이렇듯 다양하게 예외 처리 블록을 활용하여 코드 안정성을 높일 수 있다.
728x90
'추가 공부 > Python' 카테고리의 다른 글
[Python] OOP - 클래스와 속성 (0) | 2024.12.04 |
---|---|
[pyplot] 한글 깨짐 설정 (0) | 2024.11.30 |
[Python] csv 모듈을 활용한 파일 입출력 (0) | 2024.11.27 |
[Python] Numpy 기초 (0) | 2024.11.25 |
[Python] 연산자 (2) | 2024.11.23 |