【发布时间】:2020-08-19 22:25:54
【问题描述】:
我试图了解(但找不到明确的答案),将 try-except 的“except”部分用作“else”部分是否被认为是一种好的做法。
编辑 - 为了尝试更清楚:
假设我有 2 个变量要测试,而我只“需要”其中一个作为答案(例如 if-else)。如果失败,他们每个人都会引发异常。我尝试了第一个,但失败了。使用“except”部分继续使用第二个变量的代码并将其设置为所选变量是一种好习惯,还是我应该只使用“except”部分来处理异常,然后执行一些其他代码(外部“除外”范围)也测试第二个?
原文:
也就是 - 将一些代码写入 except,这不仅仅是一个小的 except 句柄或打印。更像是只有在抛出异常时才会发生的几行代码块,类似于“else”语句。也就是说,与将 except 用作专门处理抛出的异常及其后果的一部分相反。
示例 -
try: perform-this-thing...
perform-some-code
except:
exception-raised-so-do-this-code...
code
code
code
如果这不被认为是好的做法 - 做我所寻求的更正确的方法是什么?
谢谢大家。
【问题讨论】:
-
现在这不是“好”的方式。您应该尝试使用 if 语句。
-
如果该代码仅在引发异常时才有意义,那么它是您的异常处理代码,显然它应该放在那里。
-
假设我有 2 个变量要测试,而我只“需要”其中一个作为答案(如 if-else)。如果失败,他们每个人都会引发异常。我尝试了第一个,但失败了。使用“except”部分继续使用第二个变量的代码并将其设置为所选变量是一种好习惯,还是我应该只使用“except”部分来处理异常,然后执行一些其他代码(外部“除外”范围)也测试第二个?
-
@OronW 你能用那个例子更新你的问题吗?会更容易理解你的意思。
-
当然。我已经编辑了我的问题。希望它会让它更清楚