Python 处理代码段时处理错误

Python 处理代码段时处理错误,python,exception,python-interactive,Python,Exception,Python Interactive,我通过从编辑器中复制并粘贴到python中,一次在python中运行了一堆代码。此代码包括嵌套for循环。我正在做一些网页抓取和程序退出在不同的时间。我怀疑这是因为它没有时间加载。我得到以下错误(再次-程序每次刮取不同数量的文本): 在这种情况下,如何处理此错误?什么样的示例代码可以通过显式等待或异常处理来解决此问题?这意味着[j-1]对于给定的j值不存在,如果j-1超过列表中的最大元素数,您可以尝试代码并捕获如下索引器异常: driver.find_elements_by_class_name

我通过从编辑器中复制并粘贴到python中,一次在python中运行了一堆代码。此代码包括嵌套for循环。我正在做一些网页抓取和程序退出在不同的时间。我怀疑这是因为它没有时间加载。我得到以下错误(再次-程序每次刮取不同数量的文本):


在这种情况下,如何处理此错误?什么样的示例代码可以通过显式等待或异常处理来解决此问题?

这意味着
[j-1]
对于给定的
j
值不存在,如果
j-1
超过列表中的最大元素数,您可以尝试代码并捕获如下索引器异常:

driver.find_elements_by_class_name("button")[j-1].click()
try:
    # your code here
except IndexError:
    # handle the error here
当您试图访问不存在的列表的索引时,会发生索引器错误。例如:

>>> a = [1, 2, 3]
>>> print(a[10])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>a=[1,2,3]
>>>打印(a[10])
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
索引器:列表索引超出范围

如果没有更多细节,很难说应该如何处理错误。

在处理代码片段时,在文本编辑器中打开它们是很方便的

  • 仅将当前正在处理的部件复制粘贴到控制台中,以便所有相关变量都位于本地命名空间中,您可以从控制台进行探索,或者
  • 在启用自动事后调试器调用(例如,使用或或)的同时,复制粘贴作为一个整体的中到大数据块
  • 在调试器下整体运行脚本,例如使用或使用

通常,对于非常小的代码片段以外的任何内容,您都可以将Python脚本保存到一个文件中,然后通过
Python
命令行命令运行它。这将比粘贴到Python REPL中更具可持续性。在您当前的情况下,Python报告的行号将引用文件中的实际行号。在Python REPL中使用
Python
方法与
execfile(filename)
相比,有什么优势吗?我想您可以使用
execfile()
,这同样适用,这是粘贴的第35行。如果一个定义的函数稍后在发布的文件中调用另一个函数,则粘贴脚本可能会失败。但是您会得到一个关于未定义名称的错误。为什么不把脚本写进一个文件并测试它呢?不确定谁投了反对票,但这是错误的一个很好的解释。
>>> a = [1, 2, 3]
>>> print(a[10])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range