【问题标题】:How to handle time library exceptions?如何处理时库异常?
【发布时间】:2019-09-21 21:06:42
【问题描述】:

我目前正在从事一个项目,在该项目中,我可以演示一个程序在发生错误时应该如何运行,这一点至关重要。在这种情况下,我希望我的程序排除可能由失败的time.localtime() 调用产生的任何错误。

我了解此类错误极不可能发生。无论如何,我想涵盖所有可能性。因此,如果我的程序无法得到time.time()time.localtime() 的响应,会出现什么类型的错误?

try:
   time = time.time()
except #nameoferror:
   print ("Unable to get current time")

如果时间功能失败,我可以用什么替换 "#nameoferror" 以输出消息?

【问题讨论】:

  • 按照文档,看起来 time.time() 不会引发任何错误。
  • 如果您不知道异常类型,请使用except Exeception as exc: 捕获所有内置的、非系统退出的异常。您通常应该print 或以其他方式将问题记录在处理程序中,以便确定是哪一个问题(如果您关心的话)。

标签: python time shared-libraries


【解决方案1】:

编辑:我建议您也查看this post/answer

这是一个有趣的问题!通常,当您编写 try/except 时,您会捕获如果您预期的错误发生时将引发的异常类型(我想您已经知道了)。

例如:假设我们有变量var1,它恰好等于"hello" 的字符串值。如果你运行var2 = int(var1)),Python 会抛出一个ValueError 异常。因为您可能会期望,您可以编写如下内容:

var1 = "hello"

try:
    int(var1)
except ValueError:
    print("Invalid casting attempt on non-numeric value.")

就您而言,您正在处理一些不太可能(如果有的话)发生的事情。要处理这样的情况,您可以编写通用的except 处理。这样,您就不会捕获特定类型的异常。您正在捕获可能由于尝试的逻辑而引发的 any 异常。

例子:

var1 = "hello"

try:
    time = time.time()
except:
    print("Error occurred during try statement.")
    # return value if this is part of a function/handling of your choice

也许其他人会有更好的例子,但如果我不确定可能会抛出什么特定类型,我会这样处理异常。

【讨论】:

  • 谢谢,这正是我想要的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-19
  • 2017-01-30
  • 1970-01-01
  • 2013-07-24
相关资源
最近更新 更多