2012-04-03 5 views
0

나는 페이스 북 SDK에서이 예외를 받고 있어요 :이 메시지를 출력하기 전에facebook sdk에서 던져진 예외 메시지를 잡아서 어떻게 바꿀 수 있습니까?

Fatal error: Uncaught OAuthException: (#506) Duplicate status message thrown in [...] src/base_facebook.php on line 1033 

어떻게 예외를 잡을 수 있습니까? 나는 이런 식으로 변경하려면 :

여전히 응용 프로그램의 응답 그래서 우리는 당신의 벽에 게시 할 수 없습니다 같은 다시 :)

, BTW가 모든 예외를 처리하는 방법 (아래)이며 그 특별한 경우에만이 새 메시지를 원합니다.

protected function throwAPIException($result) { 
    $e = new FacebookApiException($result); 
    switch ($e->getType()) { 
     // OAuth 2.0 Draft 00 style 
     case 'OAuthException': 
     // OAuth 2.0 Draft 10 style 
     case 'invalid_token': 
     $message = $e->getMessage(); 
     if ((strpos($message, 'Error validating access token') !== false) || 
      (strpos($message, 'Invalid OAuth access token') !== false)) { 
     $this->setAccessToken(null); 
     $this->user = 0; 
     $this->clearAllPersistentData(); 
     } 
    } 

    throw $e; 
    } 

감사합니다.

답변

2
당신은 try 블록 내에서 예외를 던지고 코드를 넣어 다음 catch 블록을 잡을

:

try 
{ 
    // Code goes here 
} 

catch (OAuthException $e) 
{ 
    // Stuff to do with exception 
} 
+0

은 물론,하지만 문제는 모든 예외과를 처리하는 방법이 있다는 것입니다 메시지를 말하는 방식으로 모든 예외에 대해 표시됩니다. – Bagata

+0

무슨 뜻인지 잘 모르겠습니다. 위의 코드는'try' 블록 내에서 던져진'OAuthException'을 잡아낼 것입니다. 그게 네가 원하는게 아니야? – MichaelRushton

+0

"중복 상태 메시지"의 경우 만 잡으려고합니다. 당신이 보여요? – Bagata

관련 문제