在python中捕获错误

时间:2012-05-04 19:18:06

标签: python error-handling

我试图捕获错误并让代码完成运行。 在下面的代码中,我“做某事”。如果失败,我想打印错误消息 并继续运行下半场。

发生的事情是当第一部分发生错误时,错误声明打印和 停止运行。我希望代码能够继续运行第一部分。

  if len(rows) > 0:
            try:                
                print "Do something"       
            except:
                print time.strftime("%H:%M:%S")  

            try:
                print "Do somethings else"
            except:
                print time.strftime("%H:%M:%S")  

2 个答案:

答案 0 :(得分:6)

Python的异常没有“继续运行下半部分”的内置重启功能。相反,您只需要将“无条件,始终执行此操作”部分移出try-clause并进入finally子句或完全在try语句之外。

P.S。使用裸露的子句吞下所有异常通常是不明智的。相反,通常的最佳做法是仅捕获您知道如何处理的异常。

答案 1 :(得分:0)

您能否以编程方式确定'do Something'是否失败?如果是这样,这是一个更好的方法,而不仅仅是依赖于异常处理机制。我在.net代码中看到了很多这种反模式。许多语言的例外情况都是针对特殊情况而设计的,而不仅仅是错误处理。

保留答案只是为那些可能会像我一样思考的人保留评论。