欢迎访问宙启技术站
智能推送

Python中的HttpError():自定义处理网络请求异常

发布时间:2023-12-13 17:24:01

Python中的HttpError()是一个自定义的异常类,用于处理网络请求异常。在网络请求过程中,可能会出现连接超时、请求超时、服务器错误等异常情况,为了能够更好地处理这些异常,可以自定义一个HttpError类来进行统一的异常处理。

下面是一个简单的例子,演示了如何使用HttpError类来处理网络请求异常:

import requests

class HttpError(Exception):
    def __init__(self, status_code, message):
        self.status_code = status_code
        self.message = message

def send_request(url):
    try:
        response = requests.get(url)
        if response.status_code == 200:
            return response.text
        else:
            raise HttpError(response.status_code, 'Request failed')
    except requests.exceptions.RequestException as e:
        raise HttpError(500, str(e))

def main():
    url = 'https://www.example.com'
    try:
        result = send_request(url)
        print(result)
    except HttpError as e:
        print(f'Error: {e.status_code} - {e.message}')

if __name__ == '__main__':
    main()

在上述代码中,我们首先定义了一个HttpError类,该类继承自Exception基类,用于自定义网络请求异常。HttpError类包含两个属性,status_code用于保存HTTP状态码,message用于保存异常信息。在HttpError类的构造函数中,我们传入这两个属性的值。

在send_request函数中,我们使用requests库发送了一个GET请求,并判断响应的状态码。如果状态码是200,表示请求成功,我们返回响应的文本内容;否则,我们抛出HttpError异常,并将状态码和错误信息传入构造函数。

在main函数中,我们调用send_request函数,如果请求成功,打印结果;如果请求失败,捕获HttpError异常,并打印错误信息。

通过自定义HttpError类,我们可以将网络请求过程中的异常情况进行统一的处理。无论是连接超时、请求超时还是其他服务器错误,都可以通过捕获HttpError异常来获取相应的状态码和错误信息,并进行相应的处理。这样可以使我们的代码更加健壮和可靠。