예외 개요
정상 종료
- 프로그램이 수행중에 어떤 오류도 없었고 결과 또한 아무런 문제가 없는 경우
문법 오류
- 문법 오류는 프로그램 내에 파이썬 문법에 어긋나는 코드가 있는 경우에 발생. 파이썬 인터프리터가 문법 오류를 출력함
출력된 결과를 바탕으로 오류를 수정해야 함
논리 오류
- 논리 오류는 프로그램이 잘못된 결과를 산출하는 경우
디버그를 이용하여 실행 과정을 추적하고 잘못된 데이터를 산출하는 부분을 수정함으로써 오류를 제거
예외 발생
- 문법적인 오류나 논리적 오류가 없이 오류를 발생시키는 경우
- 0으로 나누기, 리스트 데이터에 인덱스 범위를 넘어서서 접근하려는 경우
- 프로그램 수행 도중 ctrl + c를 입력하는 경우
예외 종류
![](https://velog.velcdn.com/images%2Ftjdrhd1207%2Fpost%2F4ff5bc48-8651-4a4f-b482-0af83c565696%2Fimage.png)
![](https://velog.velcdn.com/images%2Ftjdrhd1207%2Fpost%2Fed2332be-b46d-47a9-8066-d4259758c60a%2Fimage.png)
예외 처리 구문
파이썬에서 예외 처리는 예외가 발생 시에 프로그램이 비정상적으로 종료하는 것을 방지하고 예외 처리
try:
코드 블록
except [예외_타입 [as 예외_변수]]
예외 처리 코드
[else:
예외가 발생하지 않은 경우 수행 할 코드
finally:
예외가 발생하든 하지 않든 try 블록 이후 수행할 코드]
예외 처리 구문
except 문
- 예외처리 방식에 따라 다음의 세가지 방식으로 작성
- 특정 타입의 예외를 처리할 경우
except 예외_타입:
- 특정 타입의 예외 객체를 예외변수로 받아서 예외 처리에 사용할 경우
except 예외__타입 as 예외변수:
- 모든 타입의 예외를 처리할 경우
except:
강제 예외 처리
raise 문
a = int(input("1~5 까지 숫자 입력 : ")) #범위를 벗어나면 error 발생!
if a < 1 or a > 5:
raise ValueError #범위 안에 있으면 정상 출력
print(f"입력한 a : {a} 입니다.")
![](https://velog.velcdn.com/images%2Ftjdrhd1207%2Fpost%2F2904cd73-7411-44eb-8496-45835c379da1%2Fimage.png)