Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4556

Fehlersuche... aber wo?

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)

Show all headers | View raw


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


Thread

Fehlersuche... aber wo? Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2020-02-14 09:27 +0000

csiph-web