<예외>
- 프로그래밍 언어의 오류
· 구문 오류(Syntax Error): 프로그램 실행 전에 발생하는 오류, 이클립스 파이참 등 통합개발환경 도구에서는 자동으로 실행 전에 오류 체크함
· 논리적 오류(Logical Error) 혹은 런타임 오류(Runtime Error): 프로그램 실행 중에 발생하는 오류, 문법적으로 틀린 것이 없으므로 즉시 인식되지 않지만 의도치 않은 결과를 초래할 수 있음
- 파이썬 내장 예외 종류: https://docs.python.org/3/library/exceptions.html
<예외 처리 방법>
- try, except 구문: 예외가 발생할 수 있는 상황을 예상하여 예외를 제어할 수 있음
· try: (예외 발생 가능한) 일반적인 수행문들
· except: 예외가 발생하였을 때 수행문들
cf) 예외를 그냥 넘어가고 싶은 경우 pass 키워드 사용
ex) except :
pass
· else를 같이 사용하면 예외가 발생하지 않았을 때 실행할 코드를 지정할 수 있음: 예외가 발생할 수 있는 코드만 try에 넣어서 활용(가독성, 유지보수 향상)
· finally: 예외 발생 유무 관계 없이 실행되는 코드를 작성할 수 있음
- try, except 구문 규칙
· try 구문은 단독으로 사용할 수 없음
· else 구문은 반드시 except 구문 뒤에 와야 함
· 아래 조합 외에는 오류 발생
try + except
try + except + else
try + except + finally
try + except + else + finally
try + finally
<예외 객체>
: 예외가 발생하면, 예외와 관련된 정보가 생성(예외 객체로 활용 가능)
try:
(예외 발생 가능한) 일반적인 수행문들
except 예외의 종류 as 예외 객체를 활용할 변수:
예외가 발생했을 때 수행문들
cf) 예외의 종류를 모르겠다면 exception(모든 예외 포함)
- 예외 구분: 예외 객체를 활용해 조건문처럼 예외 종류에 따라 다른 코딩을 할 수 있음
try:
(예외 발생 가능한) 일반적인 수행문들
except 예외 종류A:
예외가 발생했을 때 수행문들
except 예외 종류B:
예외가 발생했을 때 수행문들
except 예외 종류C:
예외가 발생했을 때 수행문들
- 예외 구분의 잘못된 예
· 예외 처리의 순서(예외의 포함 관계)
ex) Arithmetic > ZeroDivision
<강제로 예외 발생시키기>
: raise 예외 종류 (메시지)
· 사용자 정의 클래스를 만들 때(연산자 오버로딩 등)
· 아직 구현이 덜 된 코드
· 그 외 문법적으로 정상적인 코드지만 예외 처리가 필요한 경우
'Python' 카테고리의 다른 글
211020(수) 파이썬 2일차 - 기본연산 / 서식문자 / 주석 (0) | 2021.10.20 |
---|---|
211019(화) 파이썬 1일차 - 파이썬 특징 / 설치 (파이썬, 아나콘다) (0) | 2021.10.19 |
Python - 연산자 오버로딩, 상속, 다형성 (0) | 2021.07.14 |
Python - 객체, 클래스, 메소드 (0) | 2021.07.14 |
Python - 모듈 (0) | 2021.07.14 |