Python 예외처리와 파일, 로그 처리방법


예외처리(Exception)

흔히 예상 가능한 예외와 예상이 불가능한 예외로 나눠볼 수 있겠다.

예상 가능한 예외

  • 발생 여부를 사전에 인지할 수 있는 예외
  • 사용자의 잘못된 입력, 파일 호출 시 파일 없음
  • 개발자가 반드시 명시적으로 정의해야함

예상 불가능한 예외

  • 인터프리터 과정에서 발생하는 예외, 개발자 실수
  • 리스트위 범위를 넘어가는 값을 호출하거나 참조하는 경우
  • 숫자를 0으로 나누는 경우
  • 수행 불가시 인터프리터가 자동 호출

이리하여 예외가 발생할 경우 어떻게 처리해야 하냐면,

없는 파일을 읽거나 호출하면 파일이 없다는 알림을 주는것. 게임이 비정상 종료가 되었을시에 게임 정보를 로그를 저장하는것. 이와 같은 행위를 예외처리라고 부른다.

  • 기본형식
    try:
      예측 가능한 예외는 여기에 작성
    except [Exception Type]:
      예외 발생시 어떻게 할지 여기에 작성
    

이런식으로 try except 문을 사용할 수 있고

  • else 구문
    try:
      예측 가능한 예외는 여기에 작성
    except [Exception Type]:
      예외 발생시 어떻게 할지 여기에 작성
    else:
      예외가 없을 때 정상 동작해야할 코드들
    
  • finally
    try:
      예측 가능한 예외는 여기에 작성
    except [Exception Type]:
      예외 발생시 어떻게 할지 여기에 작성
    finally:
      예외 발생 여부와 상관없이 무조건 실행됨.
    

exception Type 저 부분에 들어갈 수 있는 Built-in Exception이 있다. 대채로,

Exception 이름 내용
IndexError List의 Index 범위를 넘어갈 때.
NameError 존재하지 않는 변수를 호출 할 때.
ZeroDivisionError 0으로 숫자를 나눌 때.
ValueError 변환할 수 없는 문자 혹은 숫자를 변환할 때.
FileNotFoundError 존재하지 않는 파일을 호출할 때.

파일(File) & 디렉토리(Directory)

  • OS에서 파일을 저장하는 트리구조의 저장 체계

디렉토리(Directory)

  • 폴더 또는 디렉토리라고 불림.
  • 파일과 다른 디렉토리를 포함할 수 있음.

파일(File)

  • 컴퓨터에서 정보를 저장하는 논리적인 단위.
  • 파일명과 확장자로 구분.
  • read, write, run 할 수 있음.
  • 종류
    • 일반적으로 Binary File과 Text File로 구분됨.
    • 일반적으로 잘 열리고 파일 내용 보이면 텍스트, 글자가 깨지거나 뭐지이건 싶으면 바이너리임.

Python에서 File입출력(Input-Output) 하는법