防止python脚本崩溃

时间:2016-12-21 17:46:32

标签: python python-3.x

建议如何处理python脚本中的所有异常以防止崩溃?我应该将整个代码包装成"尝试......除了"?还有其他更明智的方式吗?

4 个答案:

答案 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)