Skip to main content
 首页 » 编程设计

python之Python意外退出后如何让程序再次运行

2025年05月04日21lovecherry

我正在用 Python 编写一个 IRC 机器人,由于它的 alpha 性质,它可能会遇到意外错误并退出。

有什么技巧可以让程序再次运行?

请您参考如下方法:

可以通过sys.exit()来判断程序异常退出(一般错误返回1)。

您的 Python 脚本可能如下所示:

import sys 
 
def main(): 
    # ... 
 
if __name__ == '__main__': 
    try: 
        main() 
    except Exception as e: 
        print >> sys.stderr,  e 
        sys.exit(1) 
    else: 
        sys.exit() 

如果出现错误,您可以再次调用main(),但程序可能无法再次正常运行。 相反,在新进程中启动程序可能更安全。

因此您可以编写一个脚本来调用 Python 脚本,在它完成时获取它的返回值,并在返回值不同于 0 时重新启动它(这就是 sys.exit()默认用作返回值)。 这可能看起来像这样:

import subprocess 
 
command = 'thescript' 
args = ['arg1', 'arg2'] 
 
while True: 
    ret_code = subprocess.call([command] + args) 
 
    if ret_code == 0: 
        break