初次玩urllib库,访问一个网站:,没承想却遭遇了狙击。
类似于java等语言,python也采用try - except 监控及处理可能发生的错误。
同时在 python中遇到中文注释问题,参考官方资料解决: 增加中文注释的方法 根据此文,在代码开始处添加: # coding=utf-8
(1) 代码如下,很简单,就是将网页首页的内容获取下来
但是运行时,却出现了错误,按照C语言的思路,如下两个红色部分之间看起来像个调用链,而只有第一个红色语句是本人所写的代码,其余的都是库里的类接口实现。
(2) 而后赶紧修改代码,增加try-except语句
修改后的结果为下面内容,不再有那长长的看不懂的函数调用了,而只有一句错误提示及另外一个运行错误。
Internal Server Error
Traceback (most recent call last):
File "url.py", line 14, in <module>
print response.read()
NameError: name 'response' is not defined
(3) 继续修改代码:增加else
运行结果:
Internal Server Error
综上,对于可能发生错误的语句(诸如打开文件失败,打开连接失败等),要加try语句进行检查;同时为了明确错误,需要except解析可能的错误原因。对于后续依赖于try语句块中的代码,需要用else关键字标识,以保证在try语句正确运行后,才能运行此处的代码。