<p>我已准备好运行此代码,但在修复异常处理之前:</p>
<pre><code>for l in bios:
OpenThisLink = url + l
try:
response = urllib2.urlopen(OpenThisLink)
except urllib2.HTTPError:
pass
bio = response.read()
item = re.search('(JD)(.*?)(\d+)', bio)
....
</code></pre>
<p>正如建议的<a href="https://stackoverflow.com/questions/1817815/what-are-these-errors-and-how-do-i-handle-them">here</a>,我添加了<code>try...except</code>,但是现在如果一个页面没有打开,我会得到这个错误:</p>
<pre><code>bio = response.read()
NameError: name 'response' is not defined
</code></pre>
<p>所以程序继续执行。相反,我希望它返回for循环并尝试下一个url。我尝试了<code>break</code>而不是<code>pass</code>,但这结束了程序。有什么建议吗?</p>
<p>事实上,尝试比那更强大。您也可以在这里使用else块:</p>
<pre><code>try:
stuff
except Exception:
print "oh no a exception"
else:
print "oh yay no exception"
finally:
print "leaving the try block"
</code></pre>