2

I'm writing an API and I have used some managed attributes because they are retrieved from network, therefore it may generate errors.

Inside the getter-setter I want to check if API user have used a try clause around the attribute get/set.

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

1 回答 1

4

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

话虽如此,但我可以肯定的是,这是一件很奇怪的事情。您应该根据显式参数或调用函数的替代方式将引发异常或静默失败的决定留给调用者。

例如,我认为您应该考虑如何dict处理丢失的键:

  • 使用d['missing']时,dict 会引发KeyError
  • 调用者可以选择使用d.get('missing')来避免异常。
于 2013-06-03T11:39:18.060 回答