17. 에러와 예외처리

2020. 6. 27. 19:25Investment Story/금융공학 - 파이썬

반응형

프로그래밍을 하다보면 

어떤 이유로든 에러가 발생할 수 있습니다. 

문법이 잘못되어 에러가 발생할 수도 있고요,

찾으려는 데이터가 존재하지 않는 경우에도 발생할 수 있겠죠

또는 연산이 불가능한 경우에도 발생할 수 있겠고요.

여러가지 이유로 에러가 발생할 수 있습니다.

 

그런데 문제는요,

이러한 에러가 발생했을 때, 프로그램이 중단됩니다.

에러가 발생했어도, 그 에러가 충분히 예상가능한 에러일 때

에러를 무시한 채 프로그램을 진행할 수 있게 만들 수 있지 않을까요?

그럴 때 사용되는 것이 바로 '예외처리'입니다.

 

예를 들어서

KOSPI3이라는 리스트는 항상 코스피 3대장을 불러온다고 가정하면

오늘 기준으로 저 세 종목이 담겨있겠죠?

그래서 index 함수를 통해 삼성바이오로직스가 몇 등인지 확인하기 위해

삼성바이오로직스 index를 불러오는 기능을 수행했습니다.

뭐 이런식으로 되겠죠. index는 1이 작은 값이 출력이 되서 앞에 1을 더해줬습니다.

그런데 사용자가 당연히 3대장 안에 셀트리온이 있는 줄 알고

셀트리온을 입력하였습니다.

그런데 왠걸 셀트리온이 그 리스트 안에 속해 있지 않아서

에러가 발생하면 프로그램 자체가 멈추는 것입니다. 

 

이러한 경우는 충분히 있을 수 있겠죠?

충분히 예측가능한 에러일 수 있으니 

예외처리를 이용하는 것입니다.

 

예외처리 구문은

try와 except를 사용해주면 됩니다.

 

try : 

    명령문

except : 

    에러가 났을 때 동작

 

물론 여기에 else를 추가해도 되겠죠.

else는 추가해도 안해도 그만, 사용자가 하기 나름입니다.

else는 에러가 발생되지 않았을 때 실행되겠죠.

바로 적용해볼까요?

이렇게 리스트 안에 종목이 없으니 except 하단 구문이 실행됩니다. 

프로그램이 멈추지 않았죠

 

그리고 finally라는 것도 있는데

이는 에러가 발생하든 안발생하든 실행하라는 의미입니다.

삼성전자가 입력되면 삼성전자의 순위가 출력된 후 

종목 조회 완료 메시지가 출력되었죠?

셀트리온이 입력되면 except 구문 이 후

역시 finally 구문 아래 있는 명령어가 실행되었습니다.

 

이처럼 예외처리를 이용하면

예상되는 에러가 발생해도 

프로그램 동작이 멈추지 않고 계속 진행되는데요.

특정 에러에 관한 예외처리도 가능합니다. 

 

예를 들어 데이터가 없어서 값을 가져오지 못할 때 생기는 에러는

ValueError 입니다.

이러한 에러의 예외처리는

 

except ValueError : 

를 이용하면 되겠죠.

 

에러가 발생했을 때 프로그램 동작을 하지 않고

에러의 종류를 확인하고 싶은 경우도 있겠죠.

그럴 땐

except Exception as 변수 :

를 이용하시면 되는데요

예시를 보겠습니다.

왜 에러가 발생했는지 출력해주죠.

 

이상 에러와 예외처리에 대해서 알아보았습니다.

읽어주신 모든 분들께 감사드립니다.

반응형

'Investment Story > 금융공학 - 파이썬' 카테고리의 다른 글

18. 파일 읽기와 쓰기  (0) 2020.07.08
16. 함수 그리고 모듈  (2) 2020.06.18
15. 함수 정의하기  (0) 2020.06.15
14. 집합(set) 알아보기  (0) 2020.06.13
13. 딕셔너리 알아보기  (0) 2020.06.13