2015-11-02 25 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對象,如果你喜歡。