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