【问题标题】:Python 36 - returning data on errors - Exception is almost useless?Python 36 - 返回错误数据 - 异常几乎没用?
【发布时间】:2019-01-11 18:26:49
【问题描述】:

基本的例子无处不在;

例外为 e: 打印(e)

...我认为它只是在调试方面绝对没用的头发。

我觉得没有任何理由以这种方式处理异常,用于调试,因为几乎没有给出任何信息。至少当它出现硬故障时,它可以让您找到导致问题的原因。

“列表索引超出范围” - 是的,谢谢。我知道,这就是我捕获 IndexError 的原因!

那么是否可以返回导致异常的行或任何实际有用的数据?还是只是为了处理已知向量的已知异常?

谢谢!

【问题讨论】:

  • “我觉得没有任何理由以这种方式处理异常,用于调试” - 我认为你是对的。这是一个糟糕的调试工具,但这并不奇怪,因为这不是 try/except 的设计目的。它当然可以用于调试,但它的主要目的是捕获和处理意外的运行时异常。在现实世界的应用程序中,您几乎不应该只在那里有一个打印语句。

标签: python-3.x exception-handling index-error


【解决方案1】:

try-except 块用于当开发人员希望避免程序崩溃并忽略错误或以特定方式处理错误时。

我同意你的看法;打印错误几乎与不捕获错误相同。删除 try-except 块并查看堆栈跟踪将为您提供有关错误的最多信息。

【讨论】:

  • 感谢您的回复和意见,我发现使用 traceback 库对此非常有用。现在我更清楚地理解了python中的错误处理。
【解决方案2】:

对于搜索者; 你可以使用回溯库!

import traceback
try:
    print(x)
    except Exception:
        traceback.print_exc()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    • 2012-07-16
    • 1970-01-01
    • 2011-08-20
    相关资源
    最近更新 更多