我现在在写得一个小程序,基本逻辑是,输入是一个 generator ,在程序里面对每个元素进行处理,输出一个新的 generator 。
def main():
data_gen = xrange(10) # just an example
data1 = func1(data_gen)
data2 = func2(data1)
...
def func1(data_gen):
for element in data_gen:
try:
ret = process(element)
except Exception, e:
logger.error(e.message) # 我的处理
raise # 网上看到其他人的处理
else:
yield ret
func2,func3 逻辑大致相同。
通常出现的异常主要有:数据长度不够,本应该有数据却有 None 值,等。不是很频繁。
我的目标是:对于『正常的 element 』返回正确的结果。 出现异常, 记录下异常的原因。(我通常写, func1 expect XX rows, however database returns YY rows.)
我的问题是,什么情况下用 raise 比较好? 你们通常是怎么做的?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.