# 예외 처리 예외란 프로그램 실행 중 예상치 못한 상황이나 오류를 의미합니다. 예를 들어, 존재하지 않는 파일을 열려고 하거나, 0으로 나누는 연산을 시도하는 경우 등이 있습니다. 파이썬에서는 이러한 예외 상황을 처리하기 위해 try-except 블록을 사용합니다. * 프로그램 안정성: 예상치 못한 상황에 대해 미리 대비하여 프로그램이 비정상적으로 종료되는 것을 방지합니다. * 오류 메시지 제공: 사용자에게 발생한 문제에 대한 정보를 제공하여 문제 해결을 돕습니다. * 코드 가독성 향상: try-except 블록을 사용하면 코드의 흐름을 명확하게 나타낼 수 있습니다. ## 예외의 종류 * ZeroDivisionError: 0으로 나누는 경우 * TypeError: 자료형이 맞지 않을 때 * ValueError: 올바르지 않은 값이 사용될 때 * IndexError: 리스트 인덱스가 범위를 벗어났을 때 * FileNotFoundError: 파일이 존재하지 않을 때 그 외 다양한 예외가 있습니다. ## try except ```python try: # 예외가 발생할 가능성이 있는 코드 except 예외 종류: # 예외가 발생했을 때 실행할 코드 ``` * try 블록: 예외가 발생할 가능성이 있는 코드를 작성합니다. * except 블록: try 블록에서 예외가 발생하면 실행됩니다. 예외 종류 부분에 특정 예외를 지정하거나 모든 예외를 처리할 수 있습니다. ```python try: num1 = int(input("첫 번째 숫자를 입력하세요: ")) num2 = int(input("두 번째 숫자를 입력하세요: ")) result = num1 / num2 print(result) except ZeroDivisionError: print("0으로 나눌 수 없습니다.") except ValueError: print("숫자를 입력하세요.") ``` ## try except finally finally 블록은 예외 발생 여부와 상관없이 항상 실행되는 코드 블록입니다. 주로 파일 닫기, 자원 해제 등의 작업을 수행합니다. ```python try: f = open("data.txt", "r") # 파일 읽기 작업 except FileNotFoundError: print("파일이 없습니다.") finally: f.close() # 파일 닫기 ``` ## 예외 발생시키기 raise 키워드를 사용하여 직접 예외를 발생시킬 수 있습니다. ```python raise ValueError("잘못된 값입니다.") ``` ## 사용자 정의 예외 ```python class MyError(Exception): pass raise MyError("사용자 정의 예외 발생") ```