2013-06-03 2 views
2

API를 작성 중이며 네트워크에서 검색되기 때문에 관리되는 일부 특성을 사용했습니다. 따라서 오류가 발생할 수 있습니다.try 절 내에서 함수가 호출되는지 확인하십시오.

getter-setter 내부에서 API 사용자가 get/set 속성 주위에 try 절을 사용했는지 확인하고 싶습니다.

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

API는 호출자가 처리 할 수 ​​있도록 준비가되었을 때만 발생합니다. 그것은 나쁜 API 디자인입니다. –

+1

좋은 디자인이라고 생각하지 않습니다. 그러나 [Python : 예외 발생이 어디로 가는지 검사] (http://stackoverflow.com/q/4298108/222914) –

답변

4

우선 : 그것은 당신의 함수가 try 블록 :) 말했다되고 그건

에서 호출되어 있는지 확인하기 위해 실제로 가능하다면 나는 당신의 질문에 대답을하고 아무 생각이 없어요, 그러나 내가 확신 할 수있는 것은 그것이하는 이상한 일이라는 것입니다. 명시 적 매개 변수 또는 함수를 호출하는 다른 방법을 기반으로 예외를 발생 시키거나 호출자에게 자동으로 실패할지 여부를 결정해야합니다. 예를 들어

, 난 당신이 dict이 누락 된 키를 처리하는 방법을 고려해야한다고 생각 :

  • d['missing'] 사용하여 딕셔너리는 KeyError
  • 호출자가 예외를 피하기 위해 d.get('missing')를 사용하도록 선택할 수 있습니다 발생합니다.
관련 문제