1

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

发生的事情是当第一部分发生错误时,错误语句打印并停止运行。我希望代码继续运行超过第一部分。

  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")  
4

2 回答 2

6

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

PS 通常不建议用一个空的 except-clause 吞下所有异常。相反,通常的最佳实践是只捕获您知道如何处理的异常。

于 2012-05-04T19:21:43.677 回答
0

您能否以编程方式确定“做某事”是否失败?如果是这样,那是一种更好的方法,而不是仅仅依靠异常处理机制。我在 .net 代码中经常看到这种反模式。在许多语言中,异常是针对特殊情况而设计的,而不仅仅是错误处理。

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

于 2012-05-04T19:23:16.623 回答