본문 바로가기
파이썬/주식 자동매매

Python 키움API 자동매매프로그램 개발-29.Python 기초편 예외처리(2) else, finally

by 행복론자 2021. 2. 10.

시리즈 이전글입니다.

2021/02/07 - [파이썬/주식 자동매매] - Python 키움API 자동매매프로그램 개발-28.Python 기초편 예외처리(1)

 

 

01.예외 발생 확인하기

여기서 조금 더 필요한 기능이 있습니다. 위의 예처럼 단순히 10을 0으로 나눈 경우 어디서 예외가 발생했는지 바로 알 수 있지만 코드가 복잡해지면 예외가 발생했다는 것은 알겠으나 도대체 어디서 발생했는지를 알 수가 없습니다. 이럴 경우 예외가 발생한 부분을 정확히 집어주는 traceback 모듈이 필요합니다. 먼저 다음처럼 traceback 모듈을 import 해보겠습니다.

import traceback

 

 

이후 예외를 처리하는 부분에 다음처럼 traceback.format_exc()을 출력해봅니다. 

import traceback

try:
  var = 10 / 0
except Exception as e:
  print("예외가 발생했습니다.")
  print(e)
  print(traceback.format_exc())

 

 

실행하면 다음과 같이 에러가 발생한 라인을 정확히 알려줍니다.



다음 파란색으로 표시한 경로를 클릭하면 마우스 커서를 예외가 발생한 라인으로 이동시켜줘서 바로 확인할 수 있어 편리합니다. 



02.try-except-else-finally

다음은 본 프로젝트에서는 사용하지 않는 부분이지만 알고 있으면 좋은 내용입니다.

지금까지 사용한 try-except 구문은 다음과 같은 흐름으로 실행되었습니다.

try:
  코드1

   코드2
except:
  예외가 발생하면 처리하는 코드

 

 

try 구문 안에 코드를 실행시켜 예외가 발생하면 except 부분으로 분기(이동)합니다.

여기서 중요한 것은 코드1을 실행하다 예외가 발생한다면 코드2를 포함한 try 구문 안에 존재하는 아래 코드들은 실행되지 않습니다.

 

반대로 예외가 발생하지 않았다면 except 처리부분은 실행되지 않습니다.

이렇게 예외가 발생하지 않고 종료된 경우 조건문에서 사용했던 것과 같은 else를 이용해 정상 종료되었다는 것을 확인할 수 있습니다.

try:
  코드1
  코드2
except:
  예외가 발생하면 처리하는 코드
else:
  예외가 발생하지 않았으면 실행하는 코드

 

한 번 사용예를 확인해보겠습니다.

try:
  print("Try!")
except Exception as e:
  print("예외발생!")
else:
  print("정상종료!")

 

 

try 부분에서 예외없이 실행되므로 except 처리는 실행되지 않고 대신 else에 존재하는 코드가 실행됩니다.

Try!
정상종료!

 

 

반대로 except에 도달하는 예외가 발생한다면 else는 실행되지 않습니다.

try:
  pvar = 10 / 0
except Exception as e:
  print("예외발생!")
else:
  print("정상종료!")

 

 

마지막으로 finally를 이용해 작성한 코드는 예외 발생 여부와 상관 없이 최종적으로 항상 실행됩니다.

try:
  var = 10 / 0
except Exception as e:
  print("예외발생!")
else:
  print("정상종료!")
finally:
  print("다 끝났다.")

 

 

예외발생!
다 끝났다.

 

 


같이 보시면 좋을 글

2021/02/10 - [파이썬/주식 자동매매] - 주식매매프로그램 개발 노하우, 소스를 담은 전자책이 발간되었습니다.

 

주식매매프로그램 개발 노하우, 소스를 담은 전자책이 발간되었습니다.

주식매매프로그램 개발 노하우에 관한 제 전자책이 발간되었습니다. https://kmong.com/gig/292764 주식매매프로그램, 쉽게 따라 만드는 노하우와 소스를 드립니다. | 36000원부터 시작 가능한 총 평 0개

jsp-dev.tistory.com

 

2021/02/21 - [파이썬/주식 자동매매] - Python 키움API 자동매매프로그램 개발-30.KIWOOM API Open API+ 사용 / 모의투자 신청

반응형
이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

댓글