我有一个高级代码:
class SkipThisRow( RuntimeError): pass
...
for row in reader:
try:
process_row( row)
except SkipThisRow:
print("Giving up on row {}".format( reader.line_num ) )
对于程序操作中正常的和预期的部分,它感觉子类化RuntimeError
(或Exception
)是“错误的”。引发正在处理的异常是因为(csv文件的)特定行上的数据太复杂,此程序无法处理(问题的详细描述(由低级代码输出)
对于不是错误的异常,子类是否有一个内置的异常,而是处理程序流的一种方便方法(从块结构和函数调用的许多级别轻松退出)
(如果没有内置的,我想我应该定义class FlowControl( Exception)
然后class SkipThisRow( FlowControl)
)
对于“正常”流控制异常,从
Exception
继承不是问题。 看看Python builtin exceptions,StopIteration
异常是Exception
的直接子类很明显,您可以自由地设计一个异常树,这不是一个糟糕的实践,但不是强制性的
相关问题 更多 >
编程相关推荐