无法处理异常
Unable to handle exception
我正在使用 clearbit 模块从域名中获取公司信息。我尝试处理 HTTPException,但不知何故它无法识别并抛出另一个 Exception NameError。
import clearbit
def abc(i):
try:
company = clearbit.Company.find(domain=i,stream=True)
if company['name'] is None:
return "No customer"
else: return company['name']
except HTTPError as e:
s="No customer"
return s
abc('244treqda.com')
---------------------------------------------------------------------------
HTTPError Traceback (most recent call last)
<ipython-input-152-43005b4345c0> in abc(i)
3 try:
----> 4 company = clearbit.Company.find(domain=i,stream=True)
5 if company['name'] is None:
~\AppData\Local\Continuum\anaconda3\lib\site-packages\clearbit\enrichment\company.py in find(cls, **options)
15
---> 16 return cls.get(url, **options)
17
~\AppData\Local\Continuum\anaconda3\lib\site-packages\clearbit\resource.py in get(cls, url, **values)
54 else:
---> 55 response.raise_for_status()
56
~\AppData\Local\Continuum\anaconda3\lib\site-packages\requests\models.py in raise_for_status(self)
939 if http_error_msg:
--> 940 raise HTTPError(http_error_msg, response=self)
941
HTTPError: 422 Client Error: Unprocessable Entity for url: https://company-stream.clearbit.com/v2/companies/find?domain=244treqda.com
During handling of the above exception, another exception occurred:
NameError Traceback (most recent call last)
<ipython-input-153-8c883a3f90d2> in <module>
----> 1 abc('244treqda.com')
<ipython-input-152-43005b4345c0> in abc(i)
7 else:
8 return company['name']
----> 9 except HTTPError as e:
10 s="No customer"
11 return s
NameError: name 'HTTPError' is not defined
In [119]:
try:
clearbit.Company.find(domain=i,stream=True)
except urllib2.HTTPError as err:
if err.code == 422:
return "No customer"
预期输出 "No customer" 但出现 HTTPError 和 Attributeerror。
如果您进一步查看堆栈跟踪,您会看到
NameError: name 'HTTPError' is not defined
HTTPError
不是内置的 python 异常 - 您需要从适当的模块导入它以捕获该类型的异常。
在 python 模块的顶部添加 from urllib.error import HTTPError
它应该可以工作。
或者找到从 clearbit
抛出的确切 HTTPError
并在第一个选项不起作用时导入它。
我正在使用 clearbit 模块从域名中获取公司信息。我尝试处理 HTTPException,但不知何故它无法识别并抛出另一个 Exception NameError。
import clearbit
def abc(i):
try:
company = clearbit.Company.find(domain=i,stream=True)
if company['name'] is None:
return "No customer"
else: return company['name']
except HTTPError as e:
s="No customer"
return s
abc('244treqda.com')
---------------------------------------------------------------------------
HTTPError Traceback (most recent call last)
<ipython-input-152-43005b4345c0> in abc(i)
3 try:
----> 4 company = clearbit.Company.find(domain=i,stream=True)
5 if company['name'] is None:
~\AppData\Local\Continuum\anaconda3\lib\site-packages\clearbit\enrichment\company.py in find(cls, **options)
15
---> 16 return cls.get(url, **options)
17
~\AppData\Local\Continuum\anaconda3\lib\site-packages\clearbit\resource.py in get(cls, url, **values)
54 else:
---> 55 response.raise_for_status()
56
~\AppData\Local\Continuum\anaconda3\lib\site-packages\requests\models.py in raise_for_status(self)
939 if http_error_msg:
--> 940 raise HTTPError(http_error_msg, response=self)
941
HTTPError: 422 Client Error: Unprocessable Entity for url: https://company-stream.clearbit.com/v2/companies/find?domain=244treqda.com
During handling of the above exception, another exception occurred:
NameError Traceback (most recent call last)
<ipython-input-153-8c883a3f90d2> in <module>
----> 1 abc('244treqda.com')
<ipython-input-152-43005b4345c0> in abc(i)
7 else:
8 return company['name']
----> 9 except HTTPError as e:
10 s="No customer"
11 return s
NameError: name 'HTTPError' is not defined
In [119]:
try:
clearbit.Company.find(domain=i,stream=True)
except urllib2.HTTPError as err:
if err.code == 422:
return "No customer"
预期输出 "No customer" 但出现 HTTPError 和 Attributeerror。
如果您进一步查看堆栈跟踪,您会看到
NameError: name 'HTTPError' is not defined
HTTPError
不是内置的 python 异常 - 您需要从适当的模块导入它以捕获该类型的异常。
在 python 模块的顶部添加 from urllib.error import HTTPError
它应该可以工作。
或者找到从 clearbit
抛出的确切 HTTPError
并在第一个选项不起作用时导入它。