bubble: [gelöst] ]Fatal error: Unccaught exception 'PDOException'...

Beitrag lesen

"PDOException extends RuntimeException" -> "RuntimeException extends Exception"
... im Grunde ist es doch eine Exception. Geht das dann unter PHP generell nicht, dass man "Sub-Exceptions" über die Basisklasse abfangen kann?

Die PDOException extended zwar über Umwege die Exception, hat aber andere Rückgabewerte und wird entsprechend anders behandelt-
Schau dir mal den ersten User-Comment auf der verlinkten Seite zur PDOException an. Dort erklärt er dir wie du die Exceptions auch "durchschleifen" kannst.

Nach dem ich deine Erklärung dafür recht sonderbar fand hab ich ein wenig rumgetestet... Und dann ist mir mein eigentlicher Fehler, den man so im gezeigten Quelltext nicht sehen kann aufgefallen (Ich dachte der Rest sei Irrelevant).

Das User-Kommentar hatte ja eher was mit der Verarbeitung der Daten der (PDO-)Exception zu tun, als die reine Klassenabstraktion.

Um meinen Fehler zu verdeutlichen hier mal der _wirklich_ relevante Code:

``{:.language-php<?php

namespace CMS\core;

use api\ecobd\nucleo\Conexion, PDO;

class DB {
/* ... /
private function runQuery($sql, $data) {
/
... */
try {
$stmt = $this->dbh->prepare($sql);
$stmt->execute($data);
return $stmt;
}
catch(Exception $e) {
$this->error = $e;
return false;
}
}
}}

Dadurch, dass ich einfach nur catch(Exception $e) dazustehen hatte, wurde die Klasse CMS\core\Exception erwartet, von dieser Klasse ist natürlich PDOException keine "Sub-Klasse".

Ein führender Backslash catch(\Exception $e) brachte dann die Lösung.

Dank deinen Verweises auf das User-Kommentar ist mein nächstes Problem schon gelöst bevor es überhaupt aufgetaucht ist :D

MfG
bubble

--
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye