异常代码块失败的可能性是多少

时间:2014-12-15 12:42:26

标签: python exception-handling

问题:

在操作系统仍在运行时,是否有可能无法执行python代码的finally块?

目的:

我需要用Linux机器控制一台机器。步进电机的方波信号由同一环境中的外部程序产生,如果由于某种原因无法停止方波信号,则机器会受到物理损坏。因此,无论我的应用程序如何崩溃,在任何情况下调用外部程序的stop方法都非常重要。

1 个答案:

答案 0 :(得分:3)

根据官方documentation

  

在离开try语句之前总是执行finally子句,   是否发生了异常。当有例外时   发生在try子句中并且没有被except处理   子句(或者它发生在except或else子句中),它是   在finally子句执行后重新引发。最后   当任何其他条款出现时,子句也会在“出路”上执行   try语句通过break,continue或return语句保留。

无论如何,在某些情况下(例如,程序崩溃),仍然可能发生程序没有进入finally语句,但此时为了防止程序崩溃后资源打开(例如,数据库会话),你需要使用不同的机制(监控等)。