在python3中:
from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError
try:
req = Request("wrong url")
except ValueError as e:
if e == "unknown url type: 'wrong url'" :print("bad url")
为什么在我的python控制台中没有输出bad url
?
无法将ValueError消息与字符串
1.想请你告诉我' str(e)'
2.它是"未知的网址类型:'错误的网址'"不是"未知的网址类型:错误的网址" ,我在我的控制台上测试了它。
答案 0 :(得分:2)
您应首先将其传递给str
:
if str(e) == "unknown url type: 'wrong url'" :
答案 1 :(得分:1)
您正在将异常对象与字符串进行比较
您应该与str(e)
进行比较以获得匹配,例如
from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError
try:
req = Request("wrong url")
except ValueError as e:
if "unknown url type" in str(e) :
print("bad url")
该行
if "unknown url type" in str(e) :
考虑python 3.x版本之间返回字符串的差异。