2014-01-28 1 views
13

일부 데이터를 검색하는 데 webservice를 사용하고 있지만 때때로 URL이 작동하지 않고 사이트가로드되지 않습니다. 웹 서비스가 작동하지 않는 경우 사이트에 문제가 없도록 다음 예외를 처리 할 수있는 방법을 알고 계십니까? Python 요청 - 예외 유형 : ConnectionError - try : except가 작동하지 않습니다.

Django Version: 1.3.1 
Exception Type: ConnectionError 
Exception Value: 
HTTPConnectionPool(host='test.com', port=8580): Max retries exceeded with url: 

나는
try: 
    r = requests.get("http://test.com", timeout=0.001) 
except requests.exceptions.RequestException as e: # This is the correct syntax 
    print e 
    sys.exit(1) 

을 사용하지만 아무것도 당신은 sys.exit(1) 이 또한 잘못된 오류를 잡기 다시 '당신의 노동자 인스턴스를 종료하지 말아야

+0

에 대한 응답을 저장 r의 값을 설정 하지만 'except requests.exceptions.RequestException, e :'를 제외하면 안됩니까? 또한 당신은 예외로 ConnectionError'를 가지고 있다고 말하고 있습니다 만,이 특별한 예외를 잡는 것을 보지 못합니다 ... –

+0

잘 파이썬으로 새롭기 때문에 여기에서 대답을 찾았습니다 : http://stackoverflow.com/questions/16511337/correct-way-to-try-except-using-python-requests-module – user1431148

답변

26

을 발생하지 않습니다.

당신은 예를 들어를 위해 할 수있는 무엇 : 프로그램이 계속이 경우

from requests.exceptions import ConnectionError 
try: 
    r = requests.get("http://example.com", timeout=0.001) 
except ConnectionError as e: # This is the correct syntax 
    print e 
    r = "No response" 

, 일반적으로 잘 모르겠어요 어떤 기본값

+1

방금 ​​시도했지만 동일한 결과가 있습니다. – user1431148

+0

죄송합니다. 잘못된 오류가 발생하는 것을 보지 못했습니다. ConnectionError를 얻었으므로 이것을 잡아야합니다 (편집 된 답변 참조). – ProfHase85

+0

작동합니다! 대단히 감사합니다! 하지만 난 을 제외하고는 requests.exceptions.ConnectionError를 e : – user1431148

관련 문제