Обработка ошибок при работе с фрагментами кода
Я запускаю кучу кода одновременно на python, копируя его из моего редактора и вставляя его в python. Этот код включает в себя вложенные циклы. Я занимаюсь поиском в Интернете, и программа закрывается в разное время. Я подозреваю, что это потому, что он не успевает загрузить. Я получаю следующую ошибку (еще раз - программа каждый раз очищает тексты):
Traceback (most recent call last):
File "<stdin>", line 35, in <module>
IndexError: list index out of range
Во-первых, что делает line 35
Ссылаться на? Это место в соответствующем внутреннем цикле for?
Во-вторых, я думаю, что ошибка может быть вызвана строкой кода, использующей селен, например:
driver.find_elements_by_class_name("button")[j-1].click()
В этом случае, как можно справиться с этой ошибкой? Каков пример кода с явным ожиданием или обработкой исключений, который решит проблему?
3 ответа
Вы можете попробовать свой код и поймать исключение IndexError следующим образом:
try:
# your code here
except IndexError:
# handle the error here
Ошибка IndexError возникает при попытке доступа к индексу несуществующего списка. Например:
>>> a = [1, 2, 3]
>>> print(a[10])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
Трудно сказать, как вы должны обработать ошибку без более подробной информации.
Это означает, что [j-1]
не существует для данного значения j
возможно, если j-1
превышает максимальное количество элементов в списке
При работе с фрагментами кода удобно открывать их в текстовом редакторе и
- только скопируйте и вставьте в консоль ту часть, над которой вы сейчас работаете, чтобы все соответствующие переменные находились в локальном пространстве имен, которое вы можете исследовать из консоли, или
- скопируйте и вставьте кусок от среднего до большого в целом, включив автоматический посмертный вызов отладчика, например, с автоматическим запуском отладчика по исключительному рецепту Activestate или IPython% pdb magic, или
- запустить сценарий целиком под отладчиком, например с
-m pdb
% Выполнения IPython или с помощью IDE.