Start · Sprachen · PHP · Referenz · ImagickKernelException

ImagickKernelException

Klasse

Wird ausgelöst, wenn bei der Verarbeitung eines <code>ImagickKernel</code>-Objekts ein Fehler auftritt.

Kategorie: error

Signatur

class ImagickKernelException extends ImagickException

Beschreibung

ImagickKernelException ist eine spezialisierte Ausnahme-Klasse, die von ImagickException erbt und speziell für Fehler vorgesehen ist, die im Zusammenhang mit der ImagickKernel-Klasse auftreten. Diese Klasse repräsentiert morphologische Kernel (Faltungsmatrizen), die für Bildverarbeitungsoperationen wie Weichzeichnen, Schärfen, Kantenerkennung oder morphologische Transformationen verwendet werden.

Typische Auslöser für diese Ausnahme sind ungültige Kernel-Definitionen, fehlerhafte Parameter beim Erstellen oder Manipulieren eines Kernels sowie inkompatible Kernel-Geometrien. Da ImagickKernelException von ImagickException und letztlich von RuntimeException erbt, kann sie entweder gezielt oder gemeinsam mit anderen Imagick-Fehlern abgefangen werden.

Es empfiehlt sich, beim Arbeiten mit ImagickKernel-Methoden immer einen try-catch-Block zu verwenden, um sowohl ImagickKernelException als auch die allgemeinere ImagickException sauber behandeln zu können und aussagekräftige Fehlermeldungen an den Anwender oder in Log-Dateien auszugeben.

Beispiele

Abfangen eines ImagickKernel-Fehlers bei ungültiger Kernel-Definition

<?php
try {
    // Ungültige Kernel-Matrix-Zeichenkette, die einen Fehler provoziert
    $kernel = ImagickKernel::fromString('invalid_kernel_string');
} catch (ImagickKernelException $e) {
    echo 'ImagickKernel-Fehler: ' . $e->getMessage() . PHP_EOL;
} catch (ImagickException $e) {
    echo 'Allgemeiner Imagick-Fehler: ' . $e->getMessage() . PHP_EOL;
} catch (Exception $e) {
    echo 'Unbekannter Fehler: ' . $e->getMessage() . PHP_EOL;
}
ImagickKernel-Fehler: ...

Gezieltes Abfangen beim Erstellen eines benutzerdefinierten Kernels

<?php
function erstelleKernel(array $matrix): ImagickKernel {
    try {
        // Versuche, einen Kernel aus einer 2D-Matrix zu erstellen
        $kernel = ImagickKernel::fromMatrix($matrix);
        return $kernel;
    } catch (ImagickKernelException $e) {
        // Kernel-spezifischer Fehler
        error_log('Kernel-Erstellungsfehler: ' . $e->getMessage());
        throw $e;
    }
}

try {
    // Leere Matrix — ungültig
    $kernel = erstelleKernel([]);
} catch (ImagickKernelException $e) {
    echo 'Fehler beim Erstellen des Kernels: ' . $e->getMessage() . PHP_EOL;
    echo 'Fehlercode: ' . $e->getCode() . PHP_EOL;
}
Fehler beim Erstellen des Kernels: ...

// Wichtig · Fallstricke

Die Klasse ImagickKernelException steht nur zur Verfügung, wenn die PECL-Erweiterung imagick installiert und aktiviert ist. Sie erbt alle Methoden von Exception und RuntimeException wie getMessage(), getCode(), getFile() und getTrace(). Da die Klasse selbst keine zusätzlichen Methoden oder Eigenschaften definiert, dient sie primär der semantischen Unterscheidung von Kernel-spezifischen Fehlern gegenüber allgemeinen Imagick-Fehlern.

Achte darauf, beim Fangen mehrerer Ausnahmetypen die spezifischere Klasse (ImagickKernelException) immer vor der allgemeineren (ImagickException) zu platzieren, da PHP den ersten passenden catch-Block ausführt.