Python的机械化模块出错

Eli*_*sky 6 python exception mechanize urllib2

我正在使用该mechanize模块从Python执行一些Web查询.我希望我的程序具有错误恢复能力,并优雅地处理各种错误(错误的URL,403/404响应).但是,我在mechanize的文档中找不到它为各种错误抛出的错误/异常.

我只是称之为:

    self.browser = mechanize.Browser()
    self.browser.addheaders = [('User-agent', browser_header)]

    self.browser.open(query_url)
    self.result_page = self.browser.response().read()
Run Code Online (Sandbox Code Playgroud)

我怎么知道可以抛出哪些错误/异常并处理它们?

jfs*_*jfs 8

$ perl -0777 -ne'print qq($1) if /__all__ = \[(.*?)\]/s' __init__.py | grep Error 

'BrowserStateError',
'ContentTooShortError',
'FormNotFoundError',
'GopherError',
'HTTPDefaultErrorHandler',
'HTTPError',
'HTTPErrorProcessor',
'LinkNotFoundError',
'LoadError',
'ParseError',
'RobotExclusionError',
'URLError',
Run Code Online (Sandbox Code Playgroud)

要么:

>>> import mechanize
>>> filter(lambda s: "Error" in s, dir(mechanize))
['BrowserStateError', 'ContentTooShortError', 'FormNotFoundError', 'GopherError'
, 'HTTPDefaultErrorHandler', 'HTTPError', 'HTTPErrorProcessor', 'LinkNotFoundErr
or', 'LoadError', 'ParseError', 'RobotExclusionError', 'URLError']
Run Code Online (Sandbox Code Playgroud)