2012-01-29 74 views
26

Làm thế nào để xử lý các ngoại lệ với các yêu cầu thư viện python? Ví dụ làm thế nào để kiểm tra là PC kết nối với internet?Python yêu cầu xử lý ngoại lệ

Khi tôi cố gắng

try: 
    requests.get('http://www.google.com') 
except ConnectionError: 
    # handle the exception 

nó mang lại cho tôi tên lỗi ConnectionError không được định nghĩa

+0

Vui lòng bao gồm truy nguyên ngoại lệ bạn đang cố xử lý. – AdamKG

Trả lời

58

Giả sử bạn đã làm import requests, bạn muốn requests.ConnectionError. ConnectionError là một ngoại lệ được xác định bởi requests. Xem API documentation tại đây.

+2

cho rõ ràng, đó là: 'ngoại trừ yêu cầu.ConnectionError:', NOT 'yêu cầu nhập khẩu.ConnectionError' – StackG

+0

@StackG Cảm ơn sự rõ ràng hơn, tôi đã cố gắng để nhập khẩu các lớp học trực tiếp. – Jazzepi

5

cho rõ ràng, đó là

except requests.ConnectionError: 

KHÔNG

import requests.ConnectionError 

 

Bạn cũng có thể bắt một ngoại lệ chung (mặc dù điều này không được khuyến khích) với

except Exception: 
1

Thực ra, có rất nhiều ngoại lệ mà requests.get() có thể tạo ra hơn là chỉ ConnectionError. Dưới đây là một số điều tôi đã thấy trong quá trình sản xuất:

from requests import ReadTimeout, ConnectTimeout, HTTPError, Timeout, ConnectionError try: r = requests.get(url, timeout=6.0) except (ConnectTimeout, HTTPError, ReadTimeout, Timeout, ConnectionError): continue