2015-11-02 29 views
2

要测试一些使用urllib2的代码,我想提出HTTPError以确保正确处理它。如何提高HTTPError

HTTPError有一个构造函数:

def __init__(self, url, code, msg, hdrs, fp): 

我不知道该怎么传递的最后一个参数fp

你可以帮助我一个例子,将举例如HTTPError例如 raise HTTPError('arg1','arg2','arg3','arg4',...

怎么办?

+1

你为什么想这样做?它被'urllib2'使用。 –

+0

@PeterWood我会处理HTTPError发生的情况,所以首先我必须挑起它。当我编写能够处理错误的功能时,我将删除引发错误发生的代码。 –

+1

出于测试目的,最好保留一些导致错误的代码或数据。 –

回答

2

通过fp=None

source code

# The addinfourl classes depend on fp being a valid file 
# object. In some cases, the HTTPError may not have a valid 
# file object. If this happens, the simplest workaround is to 
# not initialize the base classes. 
if fp is not None: 
    self.__super_init(fp, hdrs, url, code) 

fp需求是一个类似文件的对象,所以你可以通过一个StringIO对象,如果你喜欢。