gpt4 book ai didi

Python 守护进程 - 程序结构和异常控制

转载 作者:太空宇宙 更新时间:2023-11-04 01:36:09 25 4
gpt4 key购买 nike

我已经用 Python 进行了一段时间的业余编码,并且对它感到很自在。最近我一直在编写我的第一个守护进程,并试图确定我的程序应该如何运行。

在我过去的程序中,异常可以通过简单地中止程序来处理,也许在一些小的清理之后。我必须对程序结构给予的唯一考虑是对非异常输入的有效处理。实际上,“垃圾输入,没有输出”。

在我的守护进程中,有一个实际上永远不会结束的外部循环和一个 sleep 语句,用于控制事情发生的时间间隔。有效输入数据的处理很容易,但我很难理解处理异常的最佳实践。有时,异常可能发生在多层嵌套函数中,并且每个嵌套函数都需要向其父函数返回一些内容,而父函数又必须向其父函数返回一些内容,直到控制权返回到最外层循环。每个函数都必须能够处理任何异常情况,不仅是针对其自身,还针对其所有下属。

对于我的问题含糊不清,我深表歉意,但我想知道是否有人可以为我提供一些关于如何处理这些异常的一般性指示。我是否应该查看可以在不影响父进程的情况下终止的生成子进程?一种(远程)可能性是我正在正确地做事并且实际上确实需要所有嵌套处理。另一个非常真实的可能性是我不知道我在说什么。 :)

史蒂夫

最佳答案

异常的设计目的是(可能)不被立即捕获——这就是它们与函数返回表示“错误”的值时的不同之处。每个异常都可以在您想要(并且可以)对其进行处理的级别捕获。

至少,您可以从捕获主循环中的所有异常并记录消息开始。这很简单,可以确保您的守护进程不会死掉。在主循环中,修复大多数问题可能为时已晚,因此您可以更快地捕获特定异常。例如。如果文件格式错误,则在打开并尝试使用该文件的例程中捕获异常,而不是深入到发现问题的解析代码中;也许你可以尝试另一种格式。基本上,如果有一个地方可以让您从特定的错误情况中恢复过来,那就捕获它并这样做。

关于Python 守护进程 - 程序结构和异常控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9606937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com