如何在异常发生后立即停止执行函数? [Python]
How to stop the execution of a function right after the exception happened? [Python]
假设我有以下代码:
def main():
try:
int('string_for_ValueError')
except ValueError:
print('How to stop further execution right here?')
print('Executed')
main()
如你所见,print('Executed')
行无论如何都会被执行。我的目标是在 except ValueError
被捕获后立即停止当前函数的执行。
所以,问题是 - 怎么做?
更新
该函数是多线程算法的一部分。所以,如果这个函数因为 except ValueError
而不能执行 - 这个函数应该停止并且不会 return 任何东西。但其他线程应该在那之后工作。
您可以使用 exit("Failure")
退出 Python 脚本,其中字符串是可选消息。
您可以通过消息简单地引发错误以停止执行。如果您正在使用 try except,您基本上希望程序在发现错误时不停止执行。
如果你真的想这样做,你可以这样做,
但你可以通过多种方式做到这一点。我的问题是,如果您想停止程序,为什么会捕获此错误?
EDIT AFTER YOUR UPDATE: You can add return to your function.
def main():
try:
int('string_for_ValueError')
except ValueError:
print('How to stop further execution right here?')
return "to something"
print('this line not executed because function sees the return')
main()
假设我有以下代码:
def main():
try:
int('string_for_ValueError')
except ValueError:
print('How to stop further execution right here?')
print('Executed')
main()
如你所见,print('Executed')
行无论如何都会被执行。我的目标是在 except ValueError
被捕获后立即停止当前函数的执行。
所以,问题是 - 怎么做?
更新
该函数是多线程算法的一部分。所以,如果这个函数因为 except ValueError
而不能执行 - 这个函数应该停止并且不会 return 任何东西。但其他线程应该在那之后工作。
您可以使用 exit("Failure")
退出 Python 脚本,其中字符串是可选消息。
您可以通过消息简单地引发错误以停止执行。如果您正在使用 try except,您基本上希望程序在发现错误时不停止执行。 如果你真的想这样做,你可以这样做, 但你可以通过多种方式做到这一点。我的问题是,如果您想停止程序,为什么会捕获此错误?
EDIT AFTER YOUR UPDATE: You can add return to your function.
def main():
try:
int('string_for_ValueError')
except ValueError:
print('How to stop further execution right here?')
return "to something"
print('this line not executed because function sees the return')
main()