繁体   English   中英

捕获python中的错误

[英]Trapping an error in python

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

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

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

Python的例外没有内置的重新启动功能来“继续运行下半部分”。 取而代之的是,您只需要将“无条件的,始终执行此操作”部分移出最终判决子句,移至最终最终子句或完全不包含在尝试陈述中。

PS:通常不明智的做法是仅用一条例外条款就吞下所有例外情况。 相反,通常的最佳实践是仅捕获您知道如何处理的异常。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM