예외는 프로그램 실행 중에 발생하는 오류를 말한다.
파일이 존재하지 않거나, 네트워크 연결 실패, 잘못된 사용자의 입력 등 다양한 이유로 예외는 발생한다.
예외가 발생하면 프로그램이 비정상 종료될 수 있으므로 이를 처리할 수 있는 코드를 만들어, 프로그램이 계속 실행되거나 사용자가 오류 메시지를 받을 수 있도록 해야한다.
try 블록 안에는 예외가 발생할 수 있는 코드를 작성한다.
except 블록은 특정 예외가 발생했을 때 실행될 코드를 정의한다.
try:
num = 10 / 0
# 0으로 나누었기 때문에 ZeroDivisionError가 발생한다.
except ZeroDivisionError:
# 예외가 발생했을 때 실행될 코드
print("0으로 나눌 수 없습니다")
위 코드는 0으로 나누었기 때문에 ZeroDivisionError라는 예외가 발생한다. except에 ZeroDivisionError 예외를 처리할 수 있는 코드를 만들어두었기 때문에, 0으로 나눌 수 없습니다 라는 메세지가 출력되면서 예외가 처리된다.
except문은 여러개 작성할 수 있기 때문에, 다양한 예외를 처리할 수 있다.
try:
num = 10 / 2
# 예외가 발생하지 않음
except ZeroDivisionError:
# 예외가 발생했을 때 실행될 코드
print("0으로 나눌 수 없습니다")
else:
print(f"결과는 {result}입니다.")
# 예외가 없으면 이 코드가 실행됨
try:
num = 10 / 0
# 0으로 나누었기 때문에 ZeroDivisionError가 발생한다.
except ZeroDivisionError:
# 예외가 발생했을 때 실행될 코드
print("0으로 나눌 수 없습니다")
else:
print("예외 없을 때 실행")
finally:
print("예외 상관없이 실행")
위와 같이 실행하면
0으로 나눌 수 없습니다
예외 상관없이 실행
다음과 같이 예외처리 메시지와 함께 finally 구문까지 같이 실행된 것을 볼 수 있다.