Hallo,
try{ ... } catch(PDOException $e){ dd("Keine Verbindung zur DB"); }
wobei
dd("Keine Verbindung zur DB");
auch nur diesen Text ausgibt. Nun habe ich einen ErrorHandler gesetzt:set_error_handler( function($errno, $errstr, $errfile, $errline){ ... }, E_ALL);
Und seitdem wird nicht die PDOException ausgegeben sondern der hier anfallende
$errstr
.
die Beschreibung von set_error_handler() im Handbuch sagt leider nichts dazu, aber anscheinend hebelt der Error-Handler die try/catch-Methode aus.
Ich halte das für einen Bug, denn meine Funktion dd() erzeugt ja keinen Fehler.
Ähm, nein, aber die Exception, die vorher der catch-Zweig aufgefangen hat, ist jetzt vermutlich der Fehler, den der Error-Handler meldet.
Wenn das kein Bug ist, kann ich mir das try/catch auch schenken. Meinung?
Meinung: Ja, scheint so.
Hast du alternativ mal set_exception_handler() angeschaut? Da heißt es zumindest klar und deutlich: "if an exception is not caught within a try/catch block". Möglicherweise ist das ein entscheidender Unterschied zu set_error_handler().
Ciao,
Martin
Frage an die Kollegin am Montagmorgen: "Na, wie war dein Wochenende?"
Depressive Kollegin: "Hell, dunkel, hell, dunkel, Montag."