如何在Python中抛出错误并退出自定义消息

138 投票
5 回答
226997 浏览
提问于 2025-04-17 23:48

我看到有人在Python中建议使用sys.exit()来结束程序。我的问题是,还有没有其他方法可以让当前脚本停止执行,也就是终止它,并且带有错误信息。

类似这样的:

sys.exit("You can not have three process at the same time.")

目前我想到的解决方案是:

print("You can not have three process at the same time.")
sys.exit()

5 个回答

0

在Python中,还有一个很方便的函数叫做 exit(),使用这个函数时不需要导入任何东西。

下面是一个简单的例子:

$ python3 -c "exit('This should work...')" ; echo "exit code: $?"
This should work...
exit code: 1
7

你首先需要使用 import sys 这行代码。

然后你可以用 sys.exit("你的自定义错误信息") 来退出程序,并显示你想要的错误信息。

27

你也可以这样抛出一个错误:

raise SystemExit('Error: 3 processes cannot run simultaneously.')

这种方法的一个好处是,你不需要导入Python的sys模块。这种方式在Linux上可以用Python 3和Python 2运行。我没有在Windows或Mac OS上测试过。

66

这里有三种方法,第一种是像lvc提到的那样使用sys.exit。

sys.exit('My error message')

第二种方法是使用print,这个可以输出几乎任何东西,包括错误信息。

print >>sys.stderr, "fatal error"     # Python 2.x
print("fatal error", file=sys.stderr) # Python 3.x

第三种方法是抛出一个异常,我不太喜欢这种方法,因为它可能需要用到try-catch

  raise SystemExit('error in code want to exit')

而且这种方法可能会被忽略,就像这样。

try:
  raise SystemExit('error in code want to exit')
except:
  print("program is still open")
161

用字符串来调用 sys.exit 是可以的。文档里明确提到这种用法:

特别是,使用 sys.exit("一些错误信息") 是在发生错误时快速退出程序的一种方法。

撰写回答