정상 실행 코드 포함
예외 발생 가능성 있는 코드 배치
예외 발생 시 실행될 코드
특정 예외 또는 모든 예외 처리 가능
여러 except 절 사용 가능성
예외 발생 여부와 무관하게 항상 실행
리소스 정리 및 마무리 작업에 활용
try:
# 실행할 코드
except ExceptionType:
# 예외 처리 코드
finally:
# 항상 실행될 코드
try:
file = open("example.txt", "r")
content = file.read()
print(content)
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
except IOError:
print("파일을 읽는 중 오류가 발생했습니다.")
finally:
if 'file' in locals():
file.close()
print("파일 처리 작업 완료")
def divide(a, b):
try:
result = a / b
return result
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
return None
finally:
print(f"{a}를 {b}로 나누는 연산 시도 완료")
print(divide(10, 2)) # 정상 케이스
print(divide(5, 0)) # 예외 발생 케이스
try:
user_input = input("숫자를 입력하세요: ")
number = int(user_input)
result = 100 / number
print(f"100 / {number} = {result}")
except ValueError:
print("유효한 숫자를 입력해야 합니다.")
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
except Exception as e:
print(f"예상치 못한 오류 발생: {e}")
finally:
print("프로그램 실행 완료")
tryp-except-finally를 활용하면 디버깅을 좀 잘할 수 있고, 에러 대처능력을 키울 수 있다.