Python 혼공노트 4.
- 혼자 공부하는 파이썬(+개정판) 청강하며... (그외 파이썬 강의도 …)
Error:
Syntax Error (Compiler error): 프로그램 실행 전 발생하는 오류
Runtime Error (Exception): 프로그램 실행 중 발생하는 오류
기본예외처리: 프로그램 작성자가 의도한 동작이 아닌 상황에 대한 예외 처리
오류 발생 조건이 명확하다면 If / else 구문으로 기본예외처리 가능. (의도한 조건인 경우에만 필요 코드 수행)
예외처리구문:
try:
예외가 발생할 수 있는 가능성이 있는 코드
except:
예외가 발생했을 때 실행할 코드 / 필요없는 경우, pass keyword 사용
(else:) # 옵션
예외가 발생하지 않았을 때 실행할 코드 / 일반적으로 try 구문에 포함하면 되어 사용되지 않음
(finally:) # 옵션
예외 여부와 관계없이 무조건적으로 실행할 코드
Note. 함수내부에서 return 또는 반복문 내부에서 break 를 사용할 때 필요 > 파일/세션 제어 중 유용함
예외객체: # 예외처리를 위해 미리 지정된 것들 / 예외와 관련된 정보를 담고 있는 객체
try:
표현식
except Exception as 변수로사용할이름(exception):
예외구분방법:
except Exception as 변수로사용할이름(exception):
if type(exception) == ValueError:
# 조치 - 값이 잘못되었다거나 등…
elif type(exception) == ConnectionError:
# 조치 - 연결 상태 문제라던가 등 …
elif type(exception) == IndexError
---------------------------------------------------------------
# 위의 if 문과 동일 효과 구문
except ValueError as exception:
# 조치 - 값이 잘못되었다거나 등…
except ConnectionError as exception:
except IndexError as exception:
except Exception as exception: # 가장 마지막에 위치하는 예외!
예외강제발생: 강제로 오류를 발생시키고자 할 때.
raise Exception
raise Exception()
raise Exception(message)
raise NotImplementedError
Note. pass keyword 대신 보다 명확한 메시지를 줄 수 있음
assert Condition, 'message' # assert 뒤의 조건이 True가 아닌 경우 AssertError를 발생시킴
Note. assert를 활용하여, 반복문 등에서 조건 확인 및 반복을 중단시킬 수 있음
Note. Code는 의도치 않은 행동을 제한하는 blacklist 형태 보다는 의도한 행동을 하도록 유도하는 whitelist 형태로 구현하는 것이 필요함.