问题标签 [try-except]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
9147 浏览

python - 用 `try except` 尝试两个表达式

我有两种表达方式。我需要尝试一个表达式,如果它引发异常,请尝试另一个,但如果第二个也引发异常 - 引发异常。

我试过这个,但它看起来很难看,我不确定这是解决这个问题的最佳方法:

你怎么做呢?

0 投票
3 回答
305 浏览

python - `try`s 中的几个`with`s

我有几个可能的文件可以保存我的数据;它们可以以不同的方式压缩,所以要打开它们我需要使用file(),gzip.GzipFile()和其他也返回一个文件对象(支持with接口)。

我想尝试每一个,直到一个成功打开,所以我可以做类似的事情

如果我有几十种可能的压缩变体,这显然是不可行的。(嵌套会越来越深,代码总是看起来非常相似。)

有没有更好的方法来拼写这个?

编辑:如果可能的话,我也想process(f)退出 try/except 以避免意外捕获process(f).

0 投票
1 回答
261 浏览

delphi - 我什么时候应该使用“尝试”块,我应该使用哪种?

关于 Delphi 中异常处理的两个非常基本的问题。

1) 什么时候Try?我的猜测是我不需要一个Try子句

  • 简单的代码,例如赋值、条件和循环
  • 访问我的 VCL 组件

但我确实需要Try

  • 数据库访问
  • 任何第三方组件,因为我不知道它们是否会引发异常
  • 帮助系统显示的任何内容都可能引发异常

我错过了什么吗?

2)尝试...最后还是尝试...除了...或两者兼而有之?多年来,我一直认为这是一个非此即彼的选择,直到@RRUZ用一些代码 回答了我的一个问题

问题:是不是只捕获来自CoInitialize(nil);或也来自的异常SetStaticIpAddress('Network card name','192.168.1.1','255.255.255.0');

换句话说,是否有可能在一次尝试中最终获得我的蛋糕并吃掉它?


[更新] #2 的答案似乎是肯定的。此代码显示两个对话框...

0 投票
4 回答
231 浏览

python - 用于异常处理的首选 Python 样式

这是一个一般性的最佳实践问题。以下哪个 try-except 示例更好(函数本身是 requests.get() 的简单包装器):

或者

或者两者都不是最理想的?我似乎经常为错误日志编写这类包装函数,并且想知道最 Pythonic 的方法。对此的任何建议将不胜感激。

0 投票
2 回答
7430 浏览

python - 引发错误与返回 False python3

嗨,我最近开始用 python 编码,我想知道如何处理错误。我做了教程diveintopython,在那里他使用raise error来反馈出了什么问题。这是我的情况:我有一个函数可以检查代表数字的字符串是否为 7 位或 8 位长以及其他一些东西

我单独使用这个函数,但我也会从另一个函数调用它,它扫描条形码并调用这个函数来验证代码。因此,如果扫描编号正确,则应继续扫描,否则应继续扫描。像我一样做它并在扫描仪功能中放置一个 try/except 块会更好还是我应该返回一个 False

非常感谢

0 投票
1 回答
9596 浏览

python - 简单地尝试/除 lambda - Python?

有没有办法将这个 try/except 简化为带有 lambda 的一行?

除了:

0 投票
2 回答
112621 浏览

python - syntaxError:“继续”在循环中不正确

我已经为这个错误苦苦挣扎了一段时间,对于口译员为什么抱怨“继续”似乎有不同的看法。所以我想在下面提供错误的代码。

我之所以特别在最后包含 continue 是因为我希望程序从睡眠后停止的位置重新开始执行,以保持程序状态。我需要睡眠以遵守 twitter api 速率限制,其中 api 仅允许您每小时发出一定数量的请求。因此,任何可能认为我的错误幼稚或以其他方式出现的人,请务必指出,或者请在不使用 continue 语句的情况下为我提供替代实现。

顺便说一句,我没有像另一篇文章中建议的那样混合制表符和空格。提前谢谢你的帮助。

0 投票
3 回答
137 浏览

python - 根据项目数将 Python 中的字符串拆分为指定给 3 个变量的 3 个段

我是 Python 新手,正在努力以最 Pythonic 的方式解决以下问题。

我有一个字符串(下面给出的示例状态)需要拆分(.split('/', 2))并指定(最多)3个变量(变量a、b和c)。该字符串是一个 URL,我需要将其分成 3 段。

字符串及其段可以是以下示例:

  • 'seg_a/seb_b/the_rest'-> a = seg_a, b = seg_b, c = the_rest
  • 'seg_a/the_rest'-> a = seg_a, b = None, c = the_rest
  • 'seg_a'-> a = seg_a, b = None, c = None

注意:如果没有指定其他内容,则没有义务赋予 None 值。它们可能不存在(例 2 中的 b,例 3 中的 b 和 c)。

如果拆分结果为 1 项,则将其提供给变量 a。如果拆分结果为 2 项,则将其分配给变量 a 和 c 如果拆分结果为 3 项,则将其段分配给变量 a、b 和 c

我发现了 2 种实现这一点的方法,它们似乎都不是 Pythonic,因此导致了这个问题。

方法一:

方法 B: 使用列表理解和嵌套的 Try-Except 块。前任:

我的问题(简短):

  • 什么是正确的 Pythonic 方法将这个字符串分割成它的段并将它们指定给变量 a、b 和 c?
0 投票
2 回答
106 浏览

python - Python:从具有不同类型变量的文件中读取行

尝试分析具有字典标题行的 2 列(颜色 number_of_occurances).tsv 文件。尝试以最通用的方式跳过标题行(假设这是通过要求第二列是 int 类型)。以下是我想出的最好的,但似乎必须有更好的:

似乎应该有更好的方法来处理尝试和异常。

请求文件摘录:

color Observed
green 15
gold 20
green 35

0 投票
1 回答
2116 浏览

python - finally 子句中的 Python 异常会吃掉先前的异常

在我的真实情况下,aSegmentation fault出现在finally我无能为力的子句中,因为它源于通过 ctypes 使用的外部库。实际上,我并不关心这个段错误,因为脚本无论如何都完成了。

但是,finally 中的段错误会吃掉之前发生的所有异常。因此,首先NameError从调试开始iDontExist变得很痛苦。它不会在任何地方发生。目前没有办法看到在段错误之前引发的任何异常。

你觉得我能做些什么呢?修复外部库不是一种选择。