【发布时间】:2017-05-02 22:27:14
【问题描述】:
我以这种方式在 Python 中捕获了两个异常:
#ex1
try:
#some code
except:
#some code to e.g. print str
#ex2
try:
#some code
except:
#some code to e.g. print str or exit from the program.
如果 ex1 引发异常,那么我想跳过 ex2。 如果 ex1 没有引发异常,我想尝试 ex2。
最优雅的编码方式是什么?
我目前的做法是将它包装在一个功能块中,如下所示,并在正确的位置使用 return:
def myExceptions(someArgs):
#ex1
try:
#some code
except:
#some code
return
#ex2
try:
#some code
except:
#some code
然后我只是在正确的地方调用函数 myExceptions(someArgs)
【问题讨论】:
-
对于同一个 try 块,您可以有多个
except:子句用于不同的异常,不需要所有这些恶作剧。见docs.python.org/3/tutorial/errors.html -
两个 try 块没有相同的代码,因此为什么两个单独的 try 块每个都有一次异常。
-
我觉得他的问题包括你的问题的答案作为例子。