2024-09-27 09:37:01 发布
网友
在python中,防御性中止执行的常见方法是简单地执行以下操作:
if something_went_wrong: print("Error message: goodbye cruel world") exit(1)
然而,当使用jupyter notebook时,这并不是一个好的实践,因为这似乎会完全中止内核,而这并不总是需要的。除了hack-y infinite循环之外,在jupyter中有没有合适/更好的方法?在
不,exit()不是通常中止Python执行的方法。 exit()表示立即用状态码停止解释器。在
exit()
通常,您会编写这样的脚本:
if __name__ == '__main__': sys.exit(main())
尽量不要把sys.exit()放在代码中间-这是一种不好的做法, 最后可能会得到非关闭的filehandle或锁定的资源。在
sys.exit()
要想做什么,只需引发一个正确类型的异常。如果它传播到eval循环,IPython将停止执行笔记本。在
此外,它还将为您提供有用的错误消息和堆栈跟踪。在
您甚至可以使用%debug检查堆栈的事后检查,看看哪里出了问题,但这是另一个主题。在
%debug
不,
exit()
不是通常中止Python执行的方法。exit()
表示立即用状态码停止解释器。在通常,您会编写这样的脚本:
尽量不要把
sys.exit()
放在代码中间-这是一种不好的做法, 最后可能会得到非关闭的filehandle或锁定的资源。在要想做什么,只需引发一个正确类型的异常。如果它传播到eval循环,IPython将停止执行笔记本。在
此外,它还将为您提供有用的错误消息和堆栈跟踪。在
^{pr2}$您甚至可以使用
%debug
检查堆栈的事后检查,看看哪里出了问题,但这是另一个主题。在相关问题 更多 >
编程相关推荐