贴代码:
#异常处理
from urllib import request,error
try:
response=request.urlopen('http://42.192.180.200:8888/loginl')#请求的网址
except error.HTTPError as e:
print(e.reason,e.code,e.headers,sep='\n')#分别打印reason,code,headers
结果看一下:
首先要导入request模块,还有异常处理模块error.用try和except搭配,如果能正常访问呢,就正常执行,不能正常执行就打印出出错的原因(reason)和状态码(code)以及请求头(headers).关键字参数sep是实现分隔符,比如多个参数输出时想要输出中间的分隔字符,这里就是打印里的每一个都对应一个换行,看结果图就知道了。 上面我们用到HTTPError,他是URLError的子类,现在我把子类和父类加进来:
from urllib import request,error
try:
response=request.urlopen('http://42.192.180.200:8888/loginl')
except error.HTTPError as e:
print(e.reason,e.code,e.headers,sep='\n')#先捕获HTTPError的报错原因,状态码,请求头
except error.URLError as e:
print(e.reason)#如果不是HTTPError异常,再来获取URLError异常信息
else:
print("请求成功")#如果两者都不是,那就是请求成功
代码讲解都在注释了,意思就是先去获取子类的报错信息,因为子类HTTPError是专门用来针对HTTP请求错误的,如果不是这个错误,那就看看是不是有别的错误,就打印整个URL报错信息,当然URL没报错那就是请求正确。 大家可以换不同的网址进行测试,我是专门选的一个不能请求的网址,把这样的代码当作一个模板记住,其实没啥技巧。