Start · Sprachen · PHP · Referenz · fann_get_errstr

fann_get_errstr

Funktion

Gibt die letzte Fehlermeldung zurück, die für eine FANN-Ressource oder einen FANN-Trainingsdaten-Handle gespeichert wurde.

Kategorie: misc

Signatur

fann_get_errstr(resource $errdat): string

Beschreibung

fann_get_errstr() ist Teil der PHP-FANN-Erweiterung (Fast Artificial Neural Network Library) und liefert den zuletzt aufgetretenen Fehlertext für ein neuronales Netz (resource) oder ein Trainingsdaten-Objekt. Die Funktion ergänzt fann_get_errno(), welche den numerischen Fehlercode liefert.

Der Fehlermeldungstext ist nützlich beim Debuggen von FANN-Operationen: Schlägt z. B. das Laden einer Netz-Datei, das Training oder das Speichern fehl, kann mit dieser Funktion eine menschenlesbare Beschreibung des Problems abgerufen werden.

Typischerweise wird fann_get_errstr() in Kombination mit fann_get_errno() verwendet, um sowohl Code als auch Text eines Fehlers zu protokollieren oder dem Entwickler auszugeben. Nach dem Abrufen kann der Fehlerzustand mit fann_reset_errno() und fann_reset_errstr() zurückgesetzt werden.

Parameter

Name Typ Default Beschreibung
$errdat Pflicht resource Eine FANN-Netz-Ressource (erstellt z. B. durch fann_create_standard()) oder eine FANN-Trainingsdaten-Ressource (erstellt z. B. durch fann_read_train_from_file()), für die die letzte Fehlermeldung abgerufen werden soll.

Rückgabewert

Typ
string
Beschreibung
Gibt die letzte Fehlermeldung als Zeichenkette zurück. Wurde kein Fehler registriert, wird ein leerer String zurückgegeben.

Beispiele

Fehlermeldung nach fehlgeschlagenem Laden eines Netzes abfragen

<?php
// Versuch, ein nicht vorhandenes Netz zu laden
$ann = fann_create_from_file('/nichtvorhanden/netz.net');

if (!$ann) {
    // Da $ann false ist, brauchen wir eine alternative Ressource;
    // typischerweise wird fann_get_errstr auf einem zuvor erstellten Handle aufgerufen
    $ann = fann_create_standard(3, 2, 3, 1);
    // Fehler simulieren: Speichern an ungültigem Pfad
    fann_save($ann, '/ungueltig/pfad/netz.net');
    $errno  = fann_get_errno($ann);
    $errstr = fann_get_errstr($ann);
    echo "Fehlercode: " . $errno . PHP_EOL;
    echo "Fehlermeldung: " . $errstr . PHP_EOL;
    fann_destroy($ann);
}
Fehlercode: 15 Fehlermeldung: Unable to open file "/ungueltig/pfad/netz.net" for writing: No such file or directory

Fehlermeldung beim Laden von Trainingsdaten abfragen

<?php
// Versuch, eine nicht vorhandene Trainingsdatei zu laden
$train_data = fann_read_train_from_file('/nichtvorhanden/train.data');

if (!$train_data) {
    // Eigene Trainingsdaten-Ressource für Fehlerstatus anlegen
    $ann  = fann_create_standard(2, 2, 3, 1);
    $errstr = fann_get_errstr($ann);
    if (!empty($errstr)) {
        echo "Letzter Fehler: " . $errstr . PHP_EOL;
    } else {
        echo "Kein Fehler registriert auf dieser Ressource." . PHP_EOL;
    }
    fann_destroy($ann);
}
Kein Fehler registriert auf dieser Ressource.

// Wichtig · Fallstricke

Hinweis: Die FANN-Erweiterung muss als PHP-Extension installiert und aktiviert sein (extension=fann in der php.ini). Sie ist nicht standardmäßig in PHP enthalten und muss über PECL nachinstalliert werden.

Der Fehlerstatus ist an die jeweilige Ressource gebunden. Unterschiedliche Netz- oder Trainingsdaten-Handles führen eigene Fehlerzustände. Ein Reset des Fehlerstatus ist mit fann_reset_errstr() möglich.