Ich möchte eine Ausnahme erfassen, die von der Google API-PHP-Bibliothek ausgelöst wird, aber für einige Grund dafür ist, dass ein ' Fataler Fehler: Uncaught-Ausnahme ' generiert wird, bevor mein catch-Block erreicht wird.
In meiner App habe ich so etwas:
%Vor%Dies ist Google_Clients authenticate () :
%Vor%% authenticate($code)
ist Google_Auth_OAuth2 :: authenticate () , die irgendwann die Ausnahme auslöst:
Wenn ich einen try / catch-Block in die Google_Client-Authentifizierung einfüge, fängt er die Ausnahme ab, aber ohne sie stirbt das Programm ab, anstatt den Haupt-try / catch-Block von meiner App zu erreichen.
Soweit ich weiß, sollte das nicht passieren. Irgendwelche Ideen?
Das Problem war, dass der try / catch-Block in einer Namespaced-Datei war und PHP erfordert, dass Sie "\ Exception" verwenden. Weitere Informationen: PHP 5.3 namespace / exception gotcha
Beispiel (aus dem obigen Link übernommen):
%Vor% Ich bin mir nicht sicher, wie die Struktur von Googles API ist, und ich bin kein wirklich flüssiger PHP-Programmierer, aber Sie fangen einen bestimmten Ausnahmetyp von Exception
ab, mit dem Googles Google_Auth_Exception
möglicherweise nicht erbt von.
Da Ihr try-catch-Block nach einer Ausnahme sucht, die ein Mitglied von Exception
ist und die Google_Auth_Exception
vielleicht kein Mitglied von Exception
ist, wird Ihr try catch-Block dies nicht tun.
Versuchen Sie, die spezifische Ausnahme abzufangen. Das ist mir schon früher in vielen verschiedenen Sprachen passiert.
Der von Ihnen gepostete Link erbt seine Ausnahme von: Google / Auth / Ausnahme
Google / Auth / Exception erbt die Ausnahme von: Google / Exception
Google / Exception erweitert Exception
, was in diesem Zusammenhang der Exception
sein kann, auf den sich Ihre Klasse bezieht.
Es scheint, dass meine Rechtfertigung dafür, dass Ihr try-catch-Block keine Ausnahme abfängt, völlig falsch ist, aber die Weisheit könnte immer noch wahr sein. Versuchen Sie, die spezifische Ausnahme abzufangen, und verwenden Sie instanceof
, um zu sehen, ob PHP Google_Auth_Exception
als Mitglied von Exception
erkennt.
Tags und Links php exception-handling google-api-php-client