如何在Python中抛出错误并退出自定义消息
我看到有人在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("一些错误信息") 是在发生错误时快速退出程序的一种方法。