본문 바로가기
Appz Knowledge/Python

Python 혼공노트 4 - 예외처리

by 스쳐가는인연 2023. 1. 30.

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 형태로 구현하는 것이 필요함.

 

 

 

 

 

반응형