我现在在写得一个小程序,基本逻辑是,输入是一个 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 比较好? 你们通常是怎么做的?
