2014-07-01 2 views
0

나는 예외를 잡으려고 시도하는 일부 코드를 가지고 있지만, 코드를 수행하지 않아도 except 블록의 명령문을 인쇄하지 않습니다.Python AttributeError catch does not

def check_configuration(cls, **kwargs): 
    print 'product_config' 
    errors = {} 
    for arg in kwargs: 
     if arg in cls.get_fields(): 
      print 'found', arg 
      try: 
       getattr(cls, 'clean_'+arg) 
      except: 
       print 'missing validation method: clean_'+attr+'()' 

'누락 된 인증 방법 : clean_la()'가 인쇄되지 않습니다!

내가 혼란 스러워요,

except Exception: 

except AttributeError: 

그들 중 하나가 작동하지 않는 시도했다 나는 예외를 제외하고 누락 뭔가가있다?

+0

"찾았습니까?" Try 블록에 도달하지 않았을 수 있습니까? – Shadow9043

+0

예외 처리가 올바르다 고 생각합니다. 그러나 절대로 도달하지 못했습니다. – Constantinius

+0

예, try 블록에있는 예외 만 발견했습니다. – TimRich

답변

0

그림자 덕분에 문제가 해결되었습니다. 예외는 예외입니다.

attr이 정의되지 않았습니다.

print 'missing validation method: clean_'+attr+'()'