如何退出 Python 函数,抛出错误语句而不退出 Python 解释器
如何退出 Python 函数,抛出错误语句而不退出 Python 解释器
这个问题已经有答案了:
我是Python新手,在处理自定义错误方面遇到了困难。当我的代码遇到错误时,我希望它以红色字体抛出错误,并将我带回Python终端,而不是关闭Python。
我找到了sys.exit(),但它会完全退出Python。你知道有没有另一种方法可以以红色字体抛出错误并且将我带回终端?
这是我目前的代码。
import sys def do_something(parameter): if parameter > 100: # quit the function and any function(s) that may have called it sys.exit('Your parameter should not be greater than 100!') else: # otherwise, carry on with the rest of the code
如果我表达不清楚,请告诉我,我很乐意提供更多细节。谢谢大家提前!
admin 更改状态以发布 2023年5月24日
你至少有两个选择。
使用 return
语句:
def do_something(parameter): if parameter > 100: # display error message if necessary return # 'exit' function and return to caller # rest of the code
你也可以使用 return something
将 something
的值传回调用者。例如,可以用它来提供状态码(例如:0表示成功,1表示错误)。
或者更好的方法是 raise
一个异常:
def do_something(parameter): if parameter > 100: raise ValueError('Parameter should...') # rest of the code try: do_something(101) except ValueError, e: # display error message if necessary e.g. print str(e)
请参阅 Python 手册中的 异常。
Python 中有内置的异常类(如上面的 ValueError
)。你也可以按照以下方式定义自己的异常:
class ParameterError(Exception): pass
你还可以为自定义异常类添加额外的代码,以处理参数、显示自定义错误消息等。
内置的异常类在这里列出。