2020. 6. 27. 19:25ㆍInvestment 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 |