出去之前,把这个简单的抓取网页的脚本挂上,回来的时候发现前一天由于网站异常导致脚本异常退出,呃也改加入一些异常捕获处理的方法了
python提供了类似于c#中的try catch的捕获方法 try:...except...else...finally
try和except是捕获的主力,而else和finally则属于可选
先上加入了异常处理的例子先:
01 def AnalyseHtml(url):
02 try:
03 sockUrl = urllib.urlopen(url)
04 htmlSoucrc = sockUrl.read()
05 except IOError,e:
06 print e
07 else:
08 f.file('test.html','w')
09 f.write(htmlSource)
10 f.close()
11 finally:
12 sockUrl.close()
02和05首先加入了捕获异常的主体try:...except...:
由于通过帮助文档查找到urllib.urlopen会触发IOError,则在except加入当出现IOError时,则捕获;若想捕获全异常,则可以修改为Exception
07行加入else子句,当try不会获取异常时,则执行else子句下的任务
11行加入finally,这个代表无论异常还是正常都必须执行的语句,由于担心可能出现其他异常的情况,故把openURL的句柄放到最后无论任务情况都要关闭之