반응형
코딩은 예외를 막고 막는 일의 연속이네요.
오늘 발생한 에러는 IndexError: list index out of range 입니다.
발생한 error는 아래와 같습니다.
Traceback (most recent call last):
File "c:\DataStorage\python\telegram\currency.py", line 39, in <module>
realtime = read_xpath('Realtime', forex_url3, xpath3)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\DataStorage\python\telegram\currency.py", line 9, in read_xpath
elements = tree.xpath(path)[0]
~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
문제가 되는 부분은 xpath를 이용하여 값을 가져오는데
리스트의 인덱스 범위가 벗어났을때 발생하게 됩니다.
리스트의 인덱스는 0부터 시작하므로 리스트의 길이보다 크거나, 같은 인덱스에 접근하려고 하면 오류가 발생합니다.
이번 경우에는 리스트에 요소가 없기 때문입니다.
따라서 리스트가 비어있는지를 확인하는 코드가 필요합니다.
elements = tree.xpath(path)
if elements:
# 첫 번째 요소에 접근
first_element = elements[0]
else:
# 리스트가 비어 있는 경우 처리
# 여기에 적절한 오류 처리 또는 대체 로직을 추가하세요
프로그램을 build한 상태에서는 에러로그를 볼수 없어서
왜 자주 프로그램이 멈추는지 알수 없었네요.
이런 경우의 수들을 잘 막으면 안정적인 서비스가 가능하겠지요? ㅋ
반응형
'Engineering > Python' 카테고리의 다른 글
[python] Href는 Class가 아니다.(beautifulsoup 찾기) (0) | 2024.03.17 |
---|---|
[Python] chrome-driver 업데이트 문제 해결하기 (0) | 2023.11.13 |
[python] 실시간 환율 가져오기 (feat. forex-python & xpath) (1) | 2023.05.05 |
[python] 텔레그램봇을 채널에 넣어 알림 보내기(w/ indexbriefing) (2) | 2023.01.27 |
[python] API layer.com을 이용한 다양한 api 연결 (0) | 2023.01.07 |
댓글