【问题标题】:Pycharm's "stop" does not run finally codePycharm的“停止”最终没有运行代码
【发布时间】:2020-07-23 11:24:28
【问题描述】:

我正在 pycharm 中运行一个 python 项目。在代码中,我们有一个主要的“try-catch-finally”块,例如

try:
   # Some stuff like opening files and video streams
except SomePossibleExceptions:
   # Handle possible exception
finally:
   # Save, close and tidy up unfinished files / videos / output streams

如果我在终端中运行程序,当我按下退出按钮或“ctrl-c”并执行所需的后期处理时,它将到达 finally 块。但是,在 PyCharm 中使用运行工具时按“停止”后,它只是退出并且没有到达 finally 块。

显而易见的答案是在终端中运行,但有没有办法让 PyC​​harm 在运行工具中按“停止”后运行 finally 块?

【问题讨论】:

  • “停止”是什么意思?哪个键?注意:Control-C 作为信号发送给程序。其他作业控制命令可能不会读取您的程序,而只是读取父进程。杀死一个程序而没有任何机会让他执行代码是很常见的。这是一个非常有用的功能。

标签: python terminal pycharm try-catch-finally


【解决方案1】:

不,使用红色停止按钮会立即终止进程。

我认为您提到了这一点,但我发现的唯一解决方法是编辑运行配置:

运行 > 编辑配置 > 勾选“在输出控制台中模拟终端”或“使用 Python 控制台运行”。

选中其中任何一个选项后,运行窗口将接受 ctrl-C 输入,这将允许您的 finally 块执行。

【讨论】:

    猜你喜欢
    • 2012-05-03
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2021-10-17
    相关资源
    最近更新 更多