본문 바로가기
Engineering/Python

[Python] IndexError: list index out of range

by SPICA910 2023. 5. 27.
반응형

코딩은 예외를 막고 막는 일의 연속이네요. 

 

오늘 발생한 에러는 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한 상태에서는 에러로그를 볼수 없어서 

왜 자주 프로그램이 멈추는지 알수 없었네요. 

 

이런 경우의 수들을 잘 막으면 안정적인 서비스가 가능하겠지요? ㅋ

 

반응형

댓글