gpt4 book ai didi

python - 处理 urllib2 的超时? - Python

转载 作者:IT老高 更新时间:2023-10-28 21:43:26 26 4
gpt4 key购买 nike

我在 urllib2 的 urlopen 中使用 timeout 参数。

urllib2.urlopen('http://www.example.org', timeout=1)

我如何告诉 Python 如果超时到期,应该引发自定义错误?


有什么想法吗?

最佳答案

在极少数情况下您想使用 except:。这样做会捕获 any 异常,这可能很难调试,它会捕获异常,包括 SystemExitKeyboardInterupt,这会使您的程序烦人使用..

在最简单的情况下,您会捕获 urllib2.URLError :

try:
urllib2.urlopen("http://example.com", timeout = 1)
except urllib2.URLError, e:
raise MyException("There was an error: %r" % e)

以下应捕获连接超时时引发的特定错误:

import urllib2
import socket

class MyException(Exception):
pass

try:
urllib2.urlopen("http://example.com", timeout = 1)
except urllib2.URLError, e:
# For Python 2.6
if isinstance(e.reason, socket.timeout):
raise MyException("There was an error: %r" % e)
else:
# reraise the original error
raise
except socket.timeout, e:
# For Python 2.7
raise MyException("There was an error: %r" % e)

关于python - 处理 urllib2 的超时? - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2712524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com