문제

내가 사용하는 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 베어 제외:문의 모듈에는 를 처리할 수 있 예기치 않은 나쁜 입력 충돌없이 당신의 프로그램입니다.이 이 발생하면,버그에서 기계화,그래서 나에게 메일을 주시기 바랍니다 경고 텍스트입니다.

그래서 나는 그들을 올리지 않는 어떤 예외가 있습니다.을 검색할 수도 있습니다 소스 코드를 위한 예외는 서브 클래스고 그들이 어떻게 사용됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top