2012-11-10 3 views
2

urlfetch를 사용하는 사람들이 제공 한 URL을 테스트하여 잘못된 링크를 잡습니다.GAE에서 Python으로 DNSLookupFailedError를 잡는 방법?

result = urlfetch.fetch(url) 

나는 등의 URL을 제공 할 때«HTTP : //qwerty.uiop»로그가«DNSLookupFailedError»이 있었다라고하지만,이 코드를 잡을 것 : 또한

except urlfetch.DNSLookupFailedError: 
self.error(400) 
self.response.out.write(
    'Sorry, there was a problem with URL "' + url + '"') 

내가 "except urlfetch.Error :"및 "except urlfetch.DownloadError :"를 시도했습니다.

내가 뭘 잘못하고 있고, 내가 뭘 하려는지 성취 할 다른 방법이 있습니까?

답변

2

로컬 개발자 환경과 프로덕션 환경에서 나는 실제로 다른 예외 인 DownloadError을 봅니다. 잡는 것은 나를 위해 잘 작동했다.

try: 
    result = urlfetch.fetch('http://qwerty.uiop') 
except urlfetch.DownloadError: 
    self.response.write('Oops!') 
+0

로컬 개발 환경이 없기 때문에 얻은 ​​결과를 재현 할 수 없습니다. iPad에서 개발하고 있습니다. 하지만 프로덕션 환경에서는이를 수정하지 않았습니다. 여전히 DNSLookupFailedError (DNS URL 조회가 실패했습니다 : '+ url) DNSLookupFailedError : URL에 대한 DNS 조회가 실패했습니다 : http : //thdienr.rurhf – Vladimir

+0

내가하려는 일을 수행하는 다른 방법이 있습니까? 나는 파이썬과 GAE만으로도 3 일 밖에 안되기 때문에이 작은 것들에서 종종 길을 잃는다. – Vladimir

+0

지역 개발 환경이 없다는 것이 무슨 뜻인지 잘 모르겠습니다. App Engine SDK는 로컬 개발 환경 인 dev_appserver.py (또는 Mac 런처)와 함께 제공됩니다. 개발을 위해 온라인 수업을 사용하고 있습니까? 그렇다면 환경에 따라 일반 프로덕션 환경에 추가 동작이 추가 될 수 있습니다. –