python - 在python中的函数调用外部重印错误

标签 python error-handling

我是python的新手,尝试处理一个错误,使我能够显示导致失败的两点。一个变量在函数内,而另一个变量在函数外。我的尝试是下面的代码:

def fun(x):
    z = 0.5 * x
    if z == 1.0:
        return z
    else:
        raise Exception('z is not 1.0')

if __name__ == '__main__':
    y = 9.0
    x = y / 4.0
    try:
        print fun(x)
    except fun as err:
        print 'y is %f' % y
        print err

所以如果是y = 8.0,那么x = 2.0z = 1.0很好。但是,如果是y = 9.0,则是z != 10,我希望显示错误和y的值。 y中无法访问fun(),因此我可以在其中进行操作。

我意识到这是一个毫无意义的例子。实际上,我是将文件中的一行数据传递给fun(),并且我希望fun()引发该行的哪一部分会导致错误的错误,但它不知道文件名。

谢谢你的帮助!

最佳答案

使用您的外部try/except捕获并响应Exception中的预期fun()

您基本上已经有了,只需要将except fun as err:更改为except Exception as err:

def fun(x):
    z = 0.5 * x
    if z == 1.0:
        return z
    else:
        raise Exception('z is not 1.0')

if __name__ == '__main__':
    y = 9.0
    x = y / 4.0
    try:
        print fun(x)
    except Exception as err:
        print 'y is %f' % y
        print err

关于python - 在python中的函数调用外部重印错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46689909/

相关文章:

python - 重复信息

python - openssl sha1 在终端中与在 Python 中给出不同的结果

python - 在一个 DAG 中执行顺序和并发任务

python - 如何访问 Pandas 数据框的左上角单元格?

swift - 在发生错误时向用户显示有意义的消息的最常见格式是什么-Swift

excel - 错误处理-将#NUM转换为零

python - 在 sqlalchemy 中,如何检查 session 是否附加了模型?

ios - Xcode- swift 2.0 : "Extra argument ' error' in call"with NSJSONSerialization

string - 子字符串和查找方法错误处理

powershell - 如果抛出错误,我如何继续处理项目?