Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4556
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | Fehlersuche... aber wo? |
| Date | 2020-02-14 09:27 +0000 |
| Message-ID | <1t5e465d72i40e1n3e8%sfroehli@Froehlich.Priv.at> (permalink) |
Ein eigentlich ganz simpler Methodenaufruf, garniert mit paar
Statements, die im Lauf der Fehlersuche ergänzt wurden:
#v+
function bla() {
[...]
trigger_error("Das ist ein Test!", E_USER_NOTICE);
trigger_error("Das ist ein Test!", E_USER_WARNING);
$reflector = new \ReflectionClass('Connector_Ordernumber');
var_dump($reflector->getFileName());
\Connector_Ordernumber::call($entity);
var_dump('call() fertig.');
die;
[...]
return;
}
#v-
bla() wird seinerseits natürlich auch aufgerufen:
#v+
bla();
echo "das hauptprogramm läuft noch.";
die;
#v-
Die Klasse Connector_Ordernumber existiert, $reflector verweist auf
die passende Datei, und dort ist die Methode call() zur Zeit auf
Programmabbruch reduziert:
#v+
public static function call(MimeEntity $data, Framework\MimeEntityCollection $attachments=NULL, Bool $checkOnly=false, String $format=NULL, Login $login=NULL) : Framework\ErrorLog {
trigger_error("wir sind drin", E_USER_NOTICE);
die;
}
#v-
PHP steigt wie zu erwarten mit "Error: Call to undefined method
Connector_Ordernumber::call()" aus, falls ich die Methode umbenenne.
Bei allen anderen Programmläufen ist die Ausgabe allerdings:
#v+
[...]
Notice: Das ist ein Test! in [...]
Warning: Das ist ein Test! in [...]
string(68) "[pfad]/connector_ordernumber.php"
das hauptprogramm läuft noch.
#v-
Weder trigger_error() oder die; in der aufgerufenen Methode werden
beachtet, noch var_dump() oder die; nach dem Methodenaufruf. Es
sind keine Error- oder Exception-Handler gesetzt, Shutdown-Function
ist auch keine definiert, Error-Reporting ist aktiv.
Notices, Warnungen oder Fehlermeldungen werden keine erzeugt, und
das Hauptprogramm wird exakt so fortgesetzt, als ob statt
\Connector_Ordernumber::call() einfach nur "return" stünde. Ist bloß
nicht der Fall.
Was um alles in der Welt kann ich hier an involvierter Magie
übersehen haben?
Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike
Stefan - die zarteste Ausprägung von verstaut!
(Sloganizer)
Back to de.comp.lang.php | Previous | Next | Find similar
Fehlersuche... aber wo? Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2020-02-14 09:27 +0000
csiph-web