2011-04-08 5 views
0

나는 python-sdk를 사용하여 일부 fb 앱을 개발 중입니다. 는 가끔처럼 보이는 "catch되지 않은 예외"얻을 :이 예외에 대한 이유를 알고"잡히지 않은 예외"를 어떻게 잡을 수 있습니까?

Uncaught exception GET… 
… 
… 
GraphAPIError: Error validating access token. 

, 그리고 그것을 해결하는 방법 (OAuth는 토큰을 갱신).

하지만 어떻게 알 수 있습니까?

전통 try: .. except:하지 않습니다.

SDK 코드를 해킹하지 않고 해결책을 찾고 있습니다.

전체 오류 출력, 코멘트에서 질문과 같이

[E 110407 20:44:20 web:900] Uncaught exception GET /fl?access_token=122385271170470|2.teD_D9DV6gegmpgkbZI_Hg__.3600.1302206400-1592301191|GuXEs4YTqsCPDNFU4fhbWuwlvOQ (127.0.0.1) 
    HTTPRequest(protocol='http', host='XX.XX.100.66', method='GET', uri='/fl?access_token=122385271170470|2.teD_D9DV6gegmpgkbZI_Hg__.3600.1302206400-1592301191|GuXEs4YTqsCPDNFU4fhbWuwlvOQ', version='HTTP/1.0', remote_ip='127.0.0.1', body='', headers={'Accept-Language': 'en-us,en;q=0.5', 'Accept-Encoding': 'gzip,deflate', 'X-Forwarded-For': '109.253.54.46', 'Host': 'XX.XX.100.66', 'Accept': 'application/json, text/javascript, */*', 'User-Agent': 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.16) Gecko/20110323 Ubuntu/10.10 (maverick) Firefox/3.6.16', 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'Connection': 'close', 'X-Requested-With': 'XMLHttpRequest', 'X-Real-Ip': 'XX.XX.54.46', 'Referer': 'http://XX.XX.100.66/'}) 
    Traceback (most recent call last): 
     File "/usr/local/lib/python2.6/dist-packages/tornado-1.2-py2.6.egg/tornado/web.py", line 861, in _execute 
     getattr(self, self.request.method.lower())(*args, **kwargs) 
     File "/usr/local/lib/python2.6/dist-packages/tornado-1.2-py2.6.egg/tornado/web.py", line 941, in wrapper 
     return method(self, *args, **kwargs) 
     File "/home/blabla/src/python-sdk/examples/tornado/tornading.py", line 199, in get 
     self.render("json_output.html", json = json.dumps({"error":"login"})) 
     File "/usr/local/lib/python2.6/dist-packages/tornado-1.2-py2.6.egg/tornado/web.py", line 419, in render 
     html = self.render_string(template_name, **kwargs) 
     File "/usr/local/lib/python2.6/dist-packages/tornado-1.2-py2.6.egg/tornado/web.py", line 520, in render_string 
     current_user=self.current_user, 
     File "/usr/local/lib/python2.6/dist-packages/tornado-1.2-py2.6.egg/tornado/web.py", line 683, in current_user 
     self._current_user = self.get_current_user() 
     File "/home/blabla/src/python-sdk/examples/tornado/tornading.py", line 109, in get_current_user 
     user = graph.get_object("me") 
     File "/home/blabla/src/python-sdk/src/facebook.py", line 88, in get_object 
     return self.request(id, args) 
     File "/home/blabla/src/python-sdk/src/facebook.py", line 179, in request 
     response["error"]["message"]) 
    GraphAPIError: Error validating access token. 
[E 110407 20:44:20 web:1235] 500 GET /fl?access_token=122385271170470|2.teD_D9DV6gegmpgkbZI_Hg__.3600.1302206400-1592301191|GuXEs4YTqsCPDNFU4fhbWuwlvOQ (127.0.0.1) 2714.20ms 

시도/코드 제외 :
try:
       graph = facebook.GraphAPI(access_token)
except:
       assert False, 'cougth it'

+1

다른 곳에서 예외를 포착하지 않으시겠습니까? –

+0

파이썬에서이 작업을 수행 할 수 있는지 여부는 잘 모르겠지만 디버거를 디버그하여 예외가 발생하는 위치와 시간을 중지하도록 설정하고 경로를 따라 스택을 검사하여 확인합니다. –

+0

확실히, 나는 그것을 붙잡을 수 없다, 원본은 일하는 중지한다. 저는 파이썬에서 새롭고 처음으로 이런 종류의 예외를 만났습니다. 가능한 경우 SDK 코드를 해킹하여 문제를 해결할 수 있다고 생각하지만 해결하지 않으려 고합니다. –

답변

0

생각 API, 소스 코드를 확인하십시오.

1

내가 아마 예외가 다른 스레드 산란에 발생합니다 this is what you're looking for

+0

질문을 게시하기 전에 이것을 확인했습니다. 예외를 처리해야하는데 디버깅을하지 않아야합니다. –

관련 문제