绕过错误并继续代码

2023-12-21

这是我之前遇到的一个简单问题。本质上,像这样的解决方案 https://stackoverflow.com/questions/574730/python-how-to-ignore-an-exception-and-proceed and this https://stackoverflow.com/questions/730764/try-except-in-python-how-to-properly-ignore-exceptions?lq=1“忽略”异常确实没有。即使它们不再使 python 崩溃,它们仍然会停止初始 try 子句中的任何代码。

try:
    assert False
    print "hello"
except AssertionError:
    pass

这段代码将not打印“hello”,而是跳过它,转到pass。我的问题是,有没有一种简单的方法可以在 Python 2.7 中真正忽略这一点?我读到了 3.4 中发生的一些事情以使这变得更容易,但我宁愿继续使用 python 2.7。


我不认为你可以,也不认为你应该这样做。

错误永远不应该悄无声息地过去。
除非明确沉默。

Python之禅

这意味着作为程序员,您有责任思考异常可能在何处以及为何出现。你应该(实际上必须)避免将很长的代码块放在一个try声明,然后考虑例外情况。正确的思路是:

  1. Write assert False
  2. 请注意,它might引发断言错误
  3. Put assert False in a try...except... block
  4. Write print 'Hello'
  5. 请注意,这一行不会导致任何错误(顺便说一下,著名的最后一句话)
  6. Profit

所以你的代码应该是这样的(其他答案也很好):

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

绕过错误并继续代码 的相关文章

随机推荐

  • 在 URL 中显示两个单独的选择框值

    这里是两个选择框 我需要的是如果从两个框中都选择了值 则两者都应该显示在 URL 中 如下所示 例如www example com 135 140 OR www example com 135 140 只要两者都显示 这就是主要目的 以哪个
  • 如何在 JavaScript 中创建二维数组?

    我一直在网上阅读 有些地方说这是不可能的 有些地方说这是不可能的 然后给出一个例子 其他人反驳这个例子 等等 如何在 JavaScript 中声明二维数组 假设有可能 我如何访问其成员 myArray 0 1 or myArray 0 1
  • 如何让 Google Cloud Build 在响应 GitHub 触发器时正确替换值?

    问题 在 Google Cloud Build 中设置的 GitHub 触发器实际上不会在运行构建时替换配置的值 云构建 yaml 这是 Google Cloud Build 配置 云构建 yaml steps name gcr io cl
  • 在 Haskell 中生成一组布尔变量的所有组合

    我正在尝试使用 Haskell 中的列表单子 我试图在给定指定布尔变量的字符串列表的情况下生成所有可能命题的列表 例如调用 mapM print allPropositions a b 会产生以下结果 a True b True a Tru
  • 为什么裸数组是有效的 Javascript 语法,但裸对象却不是?

    在我的 Javascript 控制台 在 Chrome 中 我正在尝试这样做 a 1 并得到SyntaxError Unexpected token 但这有效 a 1 是什么赋予了 这是因为花括号有两种用途 要么引入块 要么作为对象文字的开
  • PHP:找不到“Phar”类

    我尝试使用 Silex 框架作为我的 Web 应用程序的基础 但是 如果我尝试包含 phar 存档 PHP 会抛出以下错误 Fatal error Class Phar not found in var www framework sile
  • 将两个 mysql 查询合并为一个

    组合这两个查询的正确语法是什么 SELECT clicks FROM clicksTable WHERE clicks gt 199 ORDER BY clicks ASC LIMIT 1 and SELECT clicks FROM cl
  • 如果无法修改 JSONP 中的标头。 Chrome 中的 Twitter 扩展程序如何工作?

    现在我正在用 Javascript 做 Twitter 客户端 读完这个话题后 我有一个疑问 修改 JSONP 请求的 HTTP 标头 https stackoverflow com questions 3350778 modify htt
  • 获取地址时模板类型(类/函数)实例化的规则是什么?

    在回答中this https stackoverflow com questions 6734492 c callback to function template explicitly instantiate template问题 我发现
  • 核心数据:继承、STI 还是其他?

    我似乎无法在文档中或通过谷歌找到任何关于此的信息 但如果有的话 指向它的指针会很棒 在我的应用程序中 我有一个Thing作为核心数据类 我打算拥有那个Thing包含许多Items 里面有很多字段 比如order and created da
  • 在 macOS 中找不到 mysql 命令

    我已经安装了 MySQL dmg根据官方页面安装文件 但它返回command not found mysql当我执行时mysql命令 如何解决这个问题 MySQL 的文档说 使用软件包安装程序进行安装时 文件将安装到 usr local 中
  • setuid 与 seteuid 函数

    setuid 和 seteuid 函数有什么区别 在手册页中 这两个函数都有相似的描述 setuid DESCRIPTION setuid sets the effective user ID of the calling process
  • 如何在运行时更改 WinForms 应用程序的区域性

    我用 C 创建了 Windows 窗体程序 我在本地化方面遇到一些问题 我有两种语言的资源文件 一种是英语 另一种是法语 我想单击每个语言按钮并在运行时更改语言 但是当我点击按钮时 它不起作用 我正在使用这个代码 private void
  • 如何为 Azure AD B2C 设置用户旅程查看器

    根据Azure Active Directory B2C 收集日志 https learn microsoft com en us azure active directory b2c active directory b2c troubl
  • 您认为 Java 中最好的 CMS 是什么 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Rails 3:如何在 application.rb 中声明 Rack 中间件

    很多例子 比如这两个 如何在 Rails3 中使用机架中间件 https stackoverflow com questions 4224900 how to use rack middleware with rails3 http asc
  • VueJS 将 HTML 打印到页面

    我有一个属性 其中包含 HTML 字符串作为其属性之一 当我尝试将其打印到模板中的页面时 它实际上打印了 HTML 因此文本包含 HTML 标签 并且它本身不会被浏览器解释为 HTML 我怎样才能解决这个问题 模板 div class de
  • 无法在 Android 8 中禁用通知振动

    我试着禁用振动显示通知时 Func public static Notification buildNotifForUploaderService Context ctx String title String message Notifi
  • Pandas 数据框按日期移动列

    我有一个按日期和 ID 索引的面板数据集 看起来像这样 df pd DataFrame Date 2005 12 31 2006 03 31 2006 09 30 2005 12 31 2006 03 31 2006 06 30 2006
  • 绕过错误并继续代码

    这是我之前遇到的一个简单问题 本质上 像这样的解决方案 https stackoverflow com questions 574730 python how to ignore an exception and proceed and t