【发布时间】:2016-02-09 15:31:20
【问题描述】:
有没有办法缩短以下场景,所以我不必使用丑陋的嵌套 try except 语句?
class Error(Exception):
def __init__(self):
print("That did not work")
try:
try:
gblgbl
except:
raise Error
except Error:
pass
我想要的可以描述为以下伪代码:
Try something:
something
if something went wrong:
raise Error
catch Error:
what to do if error occours
如果 try 语句成功,我不想引发错误,但是如果我在异常语句中引发异常,如下所示:
try:
gblgbl
except:
raise Error
except Error:
pass
它不能被其他异常捕获,因为已经有一个异常捕获了 python 异常并且解释器抛出了一个 SyntaxError。
我错过了什么明显的东西吗?
我知道你可能永远不会在实际程序中使用它,但我对这个理论很好奇。
【问题讨论】:
-
我认为这已经通过stackoverflow.com/questions/1319615/…得到了答案
-
除了@jefcabatingan this blog post 提到的问题可能也很有趣。
-
您所做的只是翻译 any,除非
gblgbl执行为Error异常,然后立即处理它。您实际上并不需要内部异常子句来执行此操作。
标签: python python-3.x