【发布时间】:2017-07-11 15:28:49
【问题描述】:
如果引发异常,有什么方法可以继续执行try 块?我认为答案是否定的,但我认为下面的代码很难看。
def preprocess(self, text):
try:
text = self.parser(text)
except AttributeError:
pass
try:
terms = [term for term in text if term not in self.stopwords]
text = list_to_string(terms)
except AttributeError:
pass
try:
terms = [self.stemmer.stem(term) for term in text]
text = list_to_string(terms)
except AttributeError:
pass
return text
还有另一种以 Python 形式执行此操作的方法吗?
【问题讨论】:
-
可以使用finally关键字errors in python
-
是的,但是如果这样做会有很多嵌套代码
-
为什么所有语句都不在一个
try部分? -
@omri_saadon:是的,但问题是您不知道
try停止的位置以及继续的位置。唯一的解决方案是用try... 包围每个语句 -
也许与 contextlib:
from contextlib import suppress with suppress(AttributeError):
标签: python python-3.x