检查命令在Python中是否有问题?
我有这个命令检查命令在Python中是否有问题?,python,Python,我有这个命令 h = urllib.urlopen("http://google.com/") 我如何检查它是否检索到了一些错误、网络中断或我不期望的东西 比如说 如果错误 打印“错误” 谢谢你urllib.urlopen被弃用,因为它在Python 3.0中被删除了。请改为使用,并在文档中注明: 对错误提出质疑 我们也要这样做: try: h = urllib2.urlopen("http://google.com/") except urllib2.URLErr
h = urllib.urlopen("http://google.com/")
我如何检查它是否检索到了一些错误、网络中断或我不期望的东西
比如说
如果错误
打印“错误”
谢谢你
urllib.urlopen
被弃用,因为它在Python 3.0中被删除了。请改为使用,并在文档中注明:
对错误提出质疑
我们也要这样做:
try:
h = urllib2.urlopen("http://google.com/")
except urllib2.URLError as e:
# do something with the exception e.g.
print 'Error:', e.reason
或者只是一条(无意义的)错误消息:
try:
h = urllib2.urlopen("http://google.com/")
except urllib2.URLError:
print 'An error occurred.'
URLError
:
异常urllib2.URLError
处理程序在遇到问题时引发此异常(或派生异常)。它是的一个子类
原因此错误的原因。它可以是消息字符串或其他异常实例(对于远程URL,对于本地URL)
您可能想了解一下。
urllib.urlopen
已被弃用,因为它已在Python 3.0中删除。请改为使用,并在文档中注明:
对错误提出质疑
我们也要这样做:
try:
h = urllib2.urlopen("http://google.com/")
except urllib2.URLError as e:
# do something with the exception e.g.
print 'Error:', e.reason
或者只是一条(无意义的)错误消息:
try:
h = urllib2.urlopen("http://google.com/")
except urllib2.URLError:
print 'An error occurred.'
URLError
:
异常urllib2.URLError
处理程序在遇到问题时引发此异常(或派生异常)。它是的一个子类
原因此错误的原因。它可以是消息字符串或其他异常实例(对于远程URL,对于本地URL)
您可能需要阅读。我相信错误时会引发异常。如果您捕捉到这一点并使用错误代码,您可以轻松地进行适当的错误处理。我相信错误时会引发异常。如果捕捉到该错误并使用错误代码,您可以轻松地执行相应的错误处理。可能会发生异常,例如
IOError
——您可以使用异常处理来处理此问题。例如:
try:
h = urllib.urlopen("http://google.com/")
except IOError as e:
print "Error opening URL"
可能会发生异常,例如
IOError
——您可以使用异常处理来处理此问题。例如:
try:
h = urllib.urlopen("http://google.com/")
except IOError as e:
print "Error opening URL"
- 如果这不能做一些有意义的事情,它将引发一个异常,您可以使用
/try
除外接受该异常,但
被弃用,取而代之的是urllib.urlopen
urllib2.urlopen
或者,如果我没有理智的反应方式,我可以让它们繁殖。(通常人们希望捕获错误,以便打印错误并关闭程序。这通常是愚蠢的,因为如果不捕获并修复错误,Python无论如何都会这样做。)>>> import urllib2 >>> urllib2.urlopen('not a valid URL') Traceback (most recent call last): File "<stdin>", line 1, in <module> ... ValueError: unknown url type: not a valid URL >>> >>> urllib2.urlopen("http://thiswebsitedoesntexistq.com") Traceback (most recent call last): File "<stdin>", line 1, in <module> ... urllib2.HTTPError: HTTP Error 404: Not Found >>> >>> # URLError is the parent class for the errors raised by urlopen ... # if it can parse the URL ... >>> issubclass(urllib2.HTTPError, urllib2.URLError) True
- 如果这不能做一些有意义的事情,它将引发一个异常,您可以使用
/try
除外接受该异常,但
被弃用,取而代之的是urllib.urlopen
urllib2.urlopen
>>> import urllib2 >>> urllib2.urlopen('not a valid URL') Traceback (most recent call last): File "<stdin>", line 1, in <module> ... ValueError: unknown url type: not a valid URL >>> >>> urllib2.urlopen("http://thiswebsitedoesntexistq.com") Traceback (most recent call last): File "<stdin>", line 1, in <module> ... urllib2.HTTPError: HTTP Error 404: Not Found >>> >>> # URLError is the parent class for the errors raised by urlopen ... # if it can parse the URL ... >>> issubclass(urllib2.HTTPError, urllib2.URLError) True
或者,如果我没有理智的反应方式,我可以让它们繁殖。(通常,人们希望捕获错误,以便打印错误并关闭程序。这通常很愚蠢,因为如果不捕获并修复错误,Python也会这样做。)但是是否存在适用于所有可能错误的变量?例如IOError?@Shady:您可以只使用
,而不提及要捕获的异常。这将捕获所有异常,但应该避免。通常,您应该始终指定要捕获的错误。但是,是否有任何变量适用于所有可能的错误?例如IOError?@Shady:您可以只使用except:
,而不提及要捕获的异常。这将捕获所有异常,但应该避免。通常,您应该始终指定要捕获的错误。except:
- 如果这不能做一些有意义的事情,它将引发一个异常,您可以使用