Python:无法捕获 IndexError

2024-01-13

免责声明:这看起来像是重复的,但找到这个特定问题的答案不仅仅是微不足道的 - 我希望其他人能更轻松地找到这个问题/答案!

当我运行以下代码时,它无法捕获第二个 IndexError,而是引发它:

try:
  raise ValueError
except ValueError,IndexError:
  pass
l = [1,2,3]
try:
  l[4]
except IndexError:
  print "an index error!"

结果是

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-24-61bcf6d2b9af> in <module>()
      6       pass
      7 try:
----> 8       l[4]
      9 except IndexError:
     10       print "an index error!"

IndexError: list index out of range

问题是使用不当except ...句法。该行:

except ValueError,IndexError:

应该

except (ValueError,IndexError):

解释:如果你想检查抛出的异常,语法是except <exception-class>,e其中变量e被分配了一个实例<exception-class>。以下是失败代码中发生的情况:

  1. open("afile",'x')抛出一个ValueError as 'x'不是有效的文件模式字符串。
  2. except ValueError,IndexError分配抛出的ValueError实例到一个名为的新变量IndexError.
  3. 这个新变量会覆盖内置变量IndexError class.
  4. l[4]提出一个实际的IndexError例外。
  5. The except检查此异常类型的子句,但仅检查其实例ValueError(碰巧有这个名字IndexError) 被发现,所以异常没有被捕获。

如果您正在运行交互式 python 会话,您可以del IndexError揭开内置并让你抓住IndexError又来了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:无法捕获 IndexError 的相关文章

随机推荐

  • C 是否对浮点常量进行舍入

    关于Go中浮点精度的一个问题 https stackoverflow com questions 22337418 golang floating point precision float32 vs float64让我想知道C是如何处理这
  • 如何在VB.Net面板中获取滚动条?

    我正在 VB Net 中开发 Windows 应用程序 在这种情况下 有一种情况 有一个表单 在该表单中有一个面板 面板内有一个富文本框 所以我的要求是在面板中获得一个滚动条 因此 当用户在面板上滚动时 富文本框可以像 MS Office
  • JSONP 调用显示“未捕获的语法错误:意外的标记:”

    这是我的代码 ajax url https api flightstats com flex schedules rest v1 json flight AA 100 departing 2013 10 4 appId 19d57e69 a
  • 如何使用 SoapClient 类进行 PHP SOAP 调用

    我习惯于编写 PHP 代码 但不经常使用面向对象的编码 我现在需要与 SOAP 交互 作为客户端 但无法获得正确的语法 我有一个 WSDL 文件 它允许我使用 SoapClient 类正确设置新连接 但是 我无法真正做出正确的调用并获取返回
  • NSNumberFormatter 前导 0 和小数

    有什么方法可以格式化带有前导 0 和小数的 NSNumber 吗 例如 我需要能够写 4 5 和 000 目前我拥有它 它允许小数 但不允许前导 0 NSNumberFormatter f NSNumberFormatter alloc i
  • 用C#改变单元格的背景

    我正在开发一个使用 C 来操作 Excel 文档的程序 并且我正在使用 Microsoft Office Interop Excel Worksheet worksheet 当我将某些内容插入 x y 单元格时 我使用 worksheet
  • 在 free() 后将指针设置为 NULL 总是一个好习惯吗? [复制]

    这个问题在这里已经有答案了 可能的重复 释放后将变量设置为 NULL https stackoverflow com questions 1025589 setting variable to null after free 我正在学习良好
  • java.exe 的服务器选项

    服务器热点和客户端热点有什么区别 有什么理由将生产环境切换到 server 请分享您的实践经验 有性能提升吗 与 Oracle UCM 10g 相关 是的 可以有一个huge在某些情况下性能提升 在对我的 Protocol Buffers
  • 在java中设置代理

    我创建了一项通过互联网发布内容的服务 一切都很好 但是当我将其部署到我们的服务器时 我得到连接状态 403 禁止 我认为这是因为我们的服务器不允许在未先登录的情况下直接访问互联网 我们必须首先使用我们的用户名 密码在浏览器中登录才能访问互联
  • 通过地址栏加载远程 JavaScript 文件

    是否可以从地址栏加载远程 JavaScript 文件 我一直试图将其放入地址栏 javascript src http depot com file js funcname 我不会用它来做坏事 我只是测试我的网站 仅此而已 如果你想保护你的
  • 如何将 javaw.exe 控制台输出重定向到日志文件?

    我想从批处理文件启动我的 Java 程序 这是我想用来启动应用程序的脚本 但问题是我无法将控制台输出重定向到日志文件 任何人都可以提供任何提示 而无需编辑任何代码 并使用 Java 命令行选项或其他东西吗 echo off set TASK
  • 如何在不换行的情况下打印完整的 NumPy 数组(在 Jupyter Notebook 中)

    这个问题与这个问题不同 如何打印完整的 NumPy 数组而不截断 https stackoverflow com questions 1987694 how to print the full numpy array without tru
  • Android Studio 在 M1 Apple Silicon 芯片上非常滞后

    我已从第 7 代升级到 M1 芯片 2020 Macbook Air 英特尔芯片电脑 总的来说 我对此感到非常高兴和满意 但当谈到我经常使用的 Android Studio 性能时 我很抱歉地说 非常令人失望 Apple Silicon 兼
  • 如何在 Android 上的 ListActivity 中实现上下文菜单?

    如何实现通过长按或点击使用内置布局和 ListAdapter 的 ListActivity 触发的上下文菜单 在 onCreate 方法调用上注册上下文菜单 http developer android com reference andr
  • Tensorflow GradientTape 间歇性地出现“变量不存在梯度”

    在训练我的网络时 我偶尔会遇到警告 W0722 11 47 35 101842 140641577297728 optimizer v2 py 928 Gradients does not exist for variables model
  • 在 Ubuntu 上导入 matplotlib

    所以我下载并安装了matplotlib 奇怪的是 当它们放置在 home user Desktop 中时 我可以很好地运行这些示例 但是当我将它们移动到 home user Documents 时 它们停止工作 并且我收到以下消息 Docu
  • 拍摄嵌入式 Linux 帧缓冲区的屏幕截图

    我在评估套件 Zoom OMAP35x Torpedo 开发套件 上运行嵌入式 Linux 该板有一个 LCD 我希望能够拍摄屏幕截图并将其转换为 gif 或 png 我可以通过执行以下操作来获取原始数据 cp dev fb0 screen
  • jqgrid搜索/过滤器

    这与我的最新问题有关link https stackoverflow com questions 5775022 edited how to display the searched data on the jgrid 我已经弄清楚错误是什
  • 在 Angular UI Bootstrap 中打开模式时出现 404 Not Found 错误

    我在使用 UI Bootstrap 时遇到一个非常奇怪的问题 即使是最简单的例子也不起作用 这就是我的情况 我有一个使用 yeoman 插件的 Play Framework 应用程序 https github com tuplejump p
  • Python:无法捕获 IndexError

    免责声明 这看起来像是重复的 但找到这个特定问题的答案不仅仅是微不足道的 我希望其他人能更轻松地找到这个问题 答案 当我运行以下代码时 它无法捕获第二个 IndexError 而是引发它 try raise ValueError excep