오류로의 기계화에 모듈
문제
내가 사용하는 mechanize
모듈의 일부를 실행하는 웹에서 쿼리에 있습니다.내 프로그램 오류가구성 및 처리하는 모든 종류의 오류(잘못된 Url 을,403/404responsese)정상적입니다.그러나,나를 찾을 수 없습에서 기계화의 문서화 오류/예외가 발생한 다양한 오류가 있습니다.
나는 단지 전화:
self.browser = mechanize.Browser()
self.browser.addheaders = [('User-agent', browser_header)]
self.browser.open(query_url)
self.result_page = self.browser.response().read()
는 방법이 무엇을 알 수 있습니 오류/예외가 발생할 수 있 여기고 그들을 처리?
해결책
$ 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',
또:
>>> import mechanize
>>> filter(lambda s: "Error" in s, dir(mechanize))
['BrowserStateError', 'ContentTooShortError', 'FormNotFoundError', 'GopherError'
, 'HTTPDefaultErrorHandler', 'HTTPError', 'HTTPErrorProcessor', 'LinkNotFoundErr
or', 'LoadError', 'ParseError', 'RobotExclusionError', 'URLError']
다른 팁
는 동안 이었습 게시 시간이 오래 전에,가 있다고 생각은 여전히 필요한 올바르게 질문에 대답하기 때문에 Google 의 검색결과에 대한 이 아주 질문입니다.
이것을 쓰고,기계화(버 =(0,1,11,None None))에서 Python265 제 urllib2.HTTPError 고 그래서는 http 상태를 사용할 수 있을 통해 잡는 이 예외는,예를 들어:
import urllib2
try:
... br.open("http://www.example.org/invalid-page")
... except urllib2.HTTPError, e:
... print e.code
...
404
내가 찾은 이들 문서:
마지막으로 한가지를 참고가 일부 catch-all 베어 제외:문의 모듈에는 를 처리할 수 있 예기치 않은 나쁜 입력 충돌없이 당신의 프로그램입니다.이 이 발생하면,버그에서 기계화,그래서 나에게 메일을 주시기 바랍니다 경고 텍스트입니다.
그래서 나는 그들을 올리지 않는 어떤 예외가 있습니다.을 검색할 수도 있습니다 소스 코드를 위한 예외는 서브 클래스고 그들이 어떻게 사용됩니다.
제휴하지 않습니다 StackOverflow