有没有办法缩短以下场景,所以我不必使用丑陋的嵌套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。
我错过了一些明显的东西吗?
我知道你可能永远不会在实际程序中使用它,但我对这个理论感到好奇。
答案 0 :(得分:1)
这里没有理由使用例外。以下(伪)代码实现了同样的目的。
try:
gblgbl
except:
pass
但是请注意,捕获所有异常通常是一个坏主意,因为例如KeyboardInterrupt
异常也将被捕获,因此不能使用Ctrl-c
答案 1 :(得分:-1)
部分创建自定义例外?