退出失败脚本运行(python)

14 投票
4 回答
43803 浏览
提问于 2025-04-15 13:08

我看到有很多问题是关于在任务成功完成后如何退出脚本,但有没有办法在脚本失败时也这样做呢?我正在写一个测试脚本,主要是检查相机是否正常工作。如果第一个测试失败了,那么后面的测试很可能也会失败;所以我希望在第一次失败时就能退出,并在屏幕上显示错误信息,让我知道出了问题。

我希望这些信息足够了;如果需要更多细节来帮助我,请告诉我。

4 个回答

1

你可以通过抛出异常来识别错误情况。你的主代码可以捕捉这些异常,并进行适当的处理。你可以使用 sys.exit 来退出程序。例如,在 Python 2.x 中:

import sys

class CameraInitializationError(StandardError):
    pass

def camera_test_1():
    pass

def camera_test_2():
    raise CameraInitializationError('Failed to initialize camera')

if __name__ == '__main__':
    try:
        camera_test_1()
        camera_test_2()
        print 'Camera successfully initialized'
    except CameraInitializationError, e:
        print >>sys.stderr, 'ERROR: %s' % e
        sys.exit(1)
6

你可以使用 sys.exit() 来退出程序。不过,如果在你调用这个退出命令之前,有其他代码捕捉到了 SystemExit 这个异常,那么程序就不会退出了。

25

你是不是在找 exit() 这个函数呢?

import sys

if 1 < 0:
  print >> sys.stderr, "Something is seriously wrong."
  sys.exit(1)

exit() 这个函数可以带一个(可选的)参数,这个参数是脚本返回给命令行的代码。一般来说,返回值不等于0的情况下,表示出现了错误。

撰写回答