Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak "zastopować" FatalError?
Forum PHP.pl > Forum > Przedszkole
trifek
Witam serdecznie,
Mam taki skrypt w PHP:

  1. $fb = new Facebook\Facebook([
  2. 'app_id' => '',
  3. 'app_secret' => '',
  4. 'default_graph_version' => 'v2.5',
  5. ]);
  6.  
  7. $helper = $fb->getRedirectLoginHelper();
  8.  
  9. try {
  10. $accessToken = $helper->getAccessToken();
  11.  
  12. if (!$accessToken->isLongLived()) {
  13. $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);
  14. }
  15.  
  16.  
  17.  
  18. } catch(Facebook\Exceptions\FacebookResponseException $e) {
  19. // When Graph returns an error
  20.  
  21. echo 'Graph returned an error: ' . $e->getMessage();
  22. exit;
  23. } catch(Facebook\Exceptions\FacebookSDKException $e) {
  24.  
  25. echo 'Facebook SDK returned an error: ' . $e->getMessage();
  26. exit;
  27. }
  28.  
  29.  
  30. try {
  31.  
  32. $response = $fb->get('/me?fields=id,name,email,first_name,last_name', $accessToken->getValue());
  33. } catch(Facebook\Exceptions\FacebookResponseException $e) {
  34. echo 'ERROR: Graph ' . $e->getMessage();
  35. } catch(Facebook\Exceptions\FacebookSDKException $e) {
  36. // When validation fails or other local issues
  37. echo 'ERROR: validation fails ' . $e->getMessage();
  38. }
  39. $me = $response->getGraphUser();
  40.  
  41.  
  42. $response = $fb->get('/PAGE-ID?fields=access_token', $accessToken->getValue());
  43. $result = $response->getGraphObject()->asArray();
  44. $pageToken = $result['id']; // id strony z której nastąpiło logowanie
  45.  
  46.  
  47.  
  48. $request = $fb->get('/me/accounts', $accessToken->getValue());
  49. $graphObject = $request->getBody();
  50. $graphObject = json_decode($graphObject, true);
  51.  
  52.  
  53. }




Bardzo często łapie mi FATAL ERROR: Fatal error: Call to a member function getLongLivedAccessToken() on null in /home/fb.php (i słusznie).

W jaki sposób zrobić, żeby skrypt nie wyświetlał komunikatu Fatal Error - a np. komunikat "Nastąpił Błąd - wypisz się z FB"?

Chodzi mi tylko o to żeby skrypt nie sypał FatalErrorem - a wyświetlał komunikat po polsku (w momencie błędu) i się zatrzymywał?


Bardzo proszę o pomoc,
Trifek
kapslokk
  1. if($oAuth2Client === null){
  2. echo; exit; albo rzucanie wyjatku
  3. }
  4. $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);
Puszy
Proponuję się zapoznać z register_shutdown_function()
lukaskolista
Od php7 fatal errory są traktowane tak, jak wyjątki w php 5.6. Jeżeli korzystasz z php7: http://php.net/manual/en/language.errors.php7.php
Generalnie interfacem Throwable złapiesz wszystko, Error błędy php a Exception błędy aplikacji.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.