我使用此try/except语句有两个目标。

  • 如果未发生任何问题,则需要return值为1;如果发生任何问题,则需要return值为0。
  • 它需要引发异常并结束脚本。

  • 我有SystemExit()值工作。我也有raise SystemExit("FOOBAR")工作。但是在一起,他们没有工作。

    我的Python脚本(相关):
    except IOError:
        value_to_return = 0
        return value_to_return
        raise SystemExit("FOOBAR")
    

    这样,它将完全忽略raise SystemExit("FOOBAR")行。我该如何获取返回的值和ojit_code呢?这对于某些人可能是基本的,但实际上我遇到了很多困难。

    最佳答案

    归还和抚养是互斥的。

    提高SystemExit将结束脚本。一些清除例程可以运行,如果调用者确实想要,它们可以捕获SystemExit并将其取消,但是大多数情况下,您可以将其视为在此处停止执行。调用者将永远不会有机会看到返回值或对其执行任何有意义的操作。

    返回意味着您希望脚本继续。继续可能意味着让调用者提出SystemExit,或者可能意味着忽略该错误,或​​者可能意味着其他事情。意味着什么取决于您,因为您是编写代码的人。

    最后,您确定完全应该处理此错误吗?仅捕获异常以将其转变为系统关闭可能不是最有用的行为。这不是处理问题的用户友好方法,它隐藏了您从堆栈跟踪中获得的所有有用的调试信息。

    10-07 16:33