检查try子句中是否调用了函数

时间:2013-06-03 11:27:21

标签: python attributes getter-setter try-except

我正在编写API并且我使用了一些托管属性,因为它们是从网络中检索的,因此可能会产生错误。

在getter-setter中我想检查API用户是否在属性get / set周围使用了try子句。

def getter_or_setter():
    try:
        network_operations()
    except:
        if called_inside_try():
            raise
        else:
            log.error('error string')

1 个答案:

答案 0 :(得分:4)

第一件事:我对你的问题没有答案,也不知道是否真的可以确定你的函数是否是从try块调用的:)

话虽如此,但我确信,这是一件奇怪的事情。您应该根据显式参数或其他调用函数的方式,将决定提出异常或无提示失败给调用者。

举个例子,我相信你应该考虑dict如何处理丢失的密钥:

  • 使用d['missing']时,dict会引发KeyError
  • 来电者可以选择使用d.get('missing')来避免例外。
相关问题