Signatur
Beschreibung
SVMException ist die einheitliche Fehlerklasse der PECL-Erweiterung SVM (Support Vector Machine). Sie wird immer dann geworfen, wenn eine Operation der SVM- oder SVMModel-Klasse fehlschlägt – etwa beim Trainieren eines Modells mit ungültigen Daten, beim Laden oder Speichern einer Modelldatei oder bei falscher Parameterkonfiguration.
Da SVMException von der eingebauten PHP-Klasse Exception erbt, können alle bekannten Methoden wie getMessage(), getCode(), getFile() und getTrace() verwendet werden. Es müssen keine zusätzlichen Methoden erlernt werden.
In der Praxis empfiehlt es sich, SVM-Operationen grundsätzlich in einem try/catch-Block zu kapseln und gezielt SVMException abzufangen, um SVM-spezifische Fehler von allgemeinen Programmfehlern zu unterscheiden. So bleibt die Fehlerbehandlung übersichtlich und wartbar.
Beispiele
SVMException beim Trainieren abfangen
<?php
try {
$svm = new SVM();
// Ungültige (leere) Trainingsdaten provozieren eine SVMException
$model = $svm->train([]);
} catch (SVMException $e) {
echo 'SVM-Fehler: ' . $e->getMessage() . PHP_EOL;
echo 'Fehlercode: ' . $e->getCode() . PHP_EOL;
} catch (Exception $e) {
// Alle anderen Fehler separat behandeln
echo 'Allgemeiner Fehler: ' . $e->getMessage() . PHP_EOL;
}
SVMException beim Laden eines Modells abfangen
<?php
try {
$model = new SVMModel();
// Versucht, eine nicht vorhandene Modelldatei zu laden
$model->load('/pfad/zum/nicht-vorhandenen/modell.svm');
} catch (SVMException $e) {
echo 'Modell konnte nicht geladen werden: ' . $e->getMessage() . PHP_EOL;
}
// Wichtig · Fallstricke
PECL-Erweiterung erforderlich: SVMException ist nur verfügbar, wenn die PECL-Erweiterung svm installiert und in der php.ini aktiviert ist. Sie ist kein Bestandteil der PHP-Standardinstallation. Die Erweiterung basiert auf der C++-Bibliothek libsvm, die ebenfalls vorhanden sein muss.
Da die SVM-Erweiterung als PECL-Paket gepflegt wird und keine offizielle PHP-Dokumentation mit genauen Versionsnummern enthält, können Verhalten und Fehlermeldungen je nach installierter Version leicht abweichen. Ein Blick in den Quellcode der Erweiterung oder die PECL-Seite wird empfohlen, wenn unerwartete Ausnahmen auftreten.