Manchmal kann mein Skript die Ausgabe eines Servers nicht lesen und der folgende Fehler tritt auf:
PHP Fatal error: Call to a member function somefun() on a non-object
Dies ist nicht etwas, das nicht an meinem Ende behoben werden kann, aber das führt dazu, dass mein Skript abstürzt. Gibt es eine Möglichkeit, eine Funktion zu erstellen, die ausgeführt wird, wenn dieser bestimmte Fehler auftritt? Ich denke nicht, dass es praktisch ist, einen try-catch oder ähnliches zu machen, da ich jedes Mal, wenn eine Mitgliedsfunktion aufgerufen wird, finden muss, um zu testen, ob das Objekt existiert oder nicht (mehrere tausend).
Ja, fangen Sie einen "Error" -Wurf, siehe Ссылка
Demo: Ссылка
%Vor%Gibt es eine Möglichkeit, eine Funktion zu erstellen, die ausgeführt wird, wenn dieser bestimmte Fehler auftritt?
Ja, Sie können " register_shutdown_function " verwenden, um PHP dazu zu bringen, eine Funktion aufzurufen kurz bevor es nach dem Auftreten dieses Fehlers stirbt.
PHP: Fataler Fehler (Aufruf der Member-Funktion auf einem Nicht-Objekt)
Es ist nicht möglich, diesen Fehler zu beheben, wenn Sie das mit "catch" meinen, da PHP "Aufruf einer Member-Funktion auf einem Nicht-Objekt" als "fatalen" Fehler definiert hat. Siehe PHP, um die Funktion "Aufruf einer Member-Funktion auf einem Nicht-Objekt" in eine Ausnahme zu schalten , um eine Diskussion darüber zu führen, warum dies der Fall sein könnte.
Probieren Sie function_exists aus, um zu überprüfen, ob die Funktion existiert:
%Vor%oder verwenden Sie method_exists , um die Klassenmethode zu validieren.
Sie könnten nach Ссылка suchen. Sie müssten Ihren eigenen Fehlerhandler schreiben und den Fehlercode überprüfen, ob Sie den Fehler anzeigen möchten oder nicht.
Tags und Links php error-handling