Start · Sprachen · PHP · Referenz · SVMException

SVMException

Klasse

Wird bei einem Fehler innerhalb der SVM-Erweiterung (Support Vector Machines) ausgelöst und erbt von der eingebauten <code>Exception</code>-Klasse.

seit PHP 0.1.5 Kategorie: error

Signatur

class SVMException extends Exception

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;
}
SVM-Fehler: No training data provided Fehlercode: 0

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;
}
Modell konnte nicht geladen werden: Unable to load model

// 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.

Siehe auch