建议如何处理python脚本中的所有异常以防止崩溃?我应该将整个代码包装成"尝试......除了"?还有其他更明智的方式吗?
答案 0 :(得分:0)
是的,为确保它可以正常退出,您可以
try:
your code
except:
print("Uh oh!")
然而,要小心不要完全消除错误,让用户知道某些出错了以便你可以修复它。您可能甚至想要打印错误消息。
try:
your code
except Exception as err:
print("Uh oh, please send me this message: '" + err + "'")
答案 1 :(得分:0)
处理/捕获所有异常是Python反模式。看看这个
https://realpython.com/blog/python/the-most-diabolical-python-antipattern/
"以下代码是Python开发人员可以编写的最具破坏性的东西之一:"
try:
do_something()
except:
pass
编辑:
为什么不写except Exception
"有些变体相同 - 例如,“Exception:”或“Exception as e:”除外。他们都做了同样的大规模伤害:无声地和无形地隐藏错误条件,否则可以快速检测和发送。"
答案 2 :(得分:0)
您可以看到我的完整解释here,
但我强烈建议使用极小:
import traceback
import datetime
while True:
try:
# your code
except:
with open("exceptions.log", "a") as log:
log.write("%s: Exception occurred:\n" % datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
traceback.print_exc(file=log)
对于小脚本,这应该足够了,对于较大的脚本,我建议使用内置logging的pythons,它可以为很少的额外工作提供更多的功能。
答案 3 :(得分:0)
使用try和除了明确
try:
print('This code be running') # your code here
except Exception as e:
print('This code NOT be running because of', e)