为什么我不能处理异常?

时间:2018-08-07 16:25:35

标签: python

我使用设置代理

import os
proxy = '123.456.11.22:80'

os.environ['http_proxy'] = proxy 
os.environ['HTTP_PROXY'] = proxy
os.environ['https_proxy'] = proxy
os.environ['HTTPS_PROXY'] = proxy

有时,我的代理服务器断开(抛出ProxyError),在这种情况下,我需要更改变量“ proxyError”。我使用以下代码:

try:
    proxyError = 0
    connectFunction()
except ProxyError:
    logPrint("Connection lost. Reconnecting...")
    proxyError = 1

我无法处理ProxyError,因为python说“ ProxyError”是未知的。我试试这个:

 try:
        proxyError = 0
        connectFunction()
    except os.ProxyError:
        logPrint("Connection lost. Reconnecting...")
        proxyError = 1

这也不起作用。我需要抓住吗?

1 个答案:

答案 0 :(得分:1)

ProxyError只是python中的一个类,并且名称空间规则也适用于它,因此您需要导入ProxyError或在其所在位置使用它。

requests库的requests库中,例外是在requests.exceptions处创建的

因此,如果您要按以下方式处理异常:

try:
    proxyError = 0
    connectFunction()
except ProxyError:
    logPrint("Connection lost. Reconnecting...")
    proxyError = 1

您需要如下导入异常类:

from requests.exceptions import ProxyError

否则,您可以按以下方式处理它:

try:
    proxyError = 0
    connectFunction()
except requests.exceptions.ProxyError:
    logPrint("Connection lost. Reconnecting...")
    proxyError = 1