예상하지 못한 문제로 프로그램 실행이 어려운 상태
문법적인 문제는 없으나 실행 중 발행하는 예상하지 못한 문제
예외 관련 클래스는 "Exception" 클래스 상속
소프트웨어적으로 처리 불가(문법 에러, 네트워크 에러 등등)한 문제
발생된 예외를 별도 처리함으로써 프로그램 전체의 실행에 영향이 없도록 처리함
예외 발생 예상 구문을 try-except로 감싼다.
try:
# 예외 발생 상황
except:
# 예외 처리
else: 예외 발생하지 않은 경우 실행하는 구문(꼭 필요 x)
try-except 때만 사용 가능
try:
# 예외 발생 상황
except:
# 예외 처리
else:
# 예외가 발생하지 않은 경우 실행하는 구문
예외 발생과 상관없이 항상 실행
외부 자원으로 뭔가 실행을 하고 있을 때 예외와 상관 없이 자원 해제를 해야하는 경우
try:
# 예외 발생 상황
except:
# 예외 처리
else:
# 예외가 발생하지 않은 경우 실행하는 구문
finally:
# 예외 발생과 상관없이 항상 실행