Kern-Ausnahmen

Kern-Ausnahmen

Die Bibliothek meldet Lade- und Speicherfehler über zwei dedizierte Ausnahmetypen: PsdLoadException und PsdSaveException, die beide die Standardklasse Exception erweitern.


PsdLoadException

Ausgelöst, wenn Image.Load() / PsdImage.Load() die Eingabe nicht als gültiges PSD- oder PSB-Dokument parsen kann.

try
{
    using var image = (PsdImage)Image.Load(inputPath);
}
catch (PsdLoadException ex)
{
    Console.WriteLine($"Failed to load {inputPath}: {ex.Message}");
}

PsdSaveException

Ausgelöst, wenn PsdImage.Save() das Dokument nicht schreiben kann.

try
{
    image.Save(outputPath);
}
catch (PsdSaveException ex)
{
    Console.WriteLine($"Failed to save {outputPath}: {ex.Message}");
}

Konstruktoren

Beide Ausnahmetypen besitzen dieselbe Zweikonstruktor-Struktur: einen Konstruktor, der nur eine Nachricht akzeptiert, und einen Konstruktor, der eine Nachricht plus innere Ausnahme zur Kapselung eines tieferliegenden Fehlers akzeptiert.

throw new PsdLoadException("Unexpected end of stream while reading the PSD header.");
throw new PsdSaveException("Failed to write layer data.", innerException);

Tipps und bewährte Vorgehensweisen

  • Fange PsdLoadException um jeden Image.Load()/PsdImage.Load()-Aufruf, der externe Eingaben verarbeitet, ein.
  • Fange PsdSaveException um jeden PsdImage.Save()-Aufruf ein, falls das Ziel (Festplatte, Stream) möglicherweise nicht beschreibbar ist.
  • Beide Typen erweitern Exception, daher fängt ein breiteres catch (Exception) sie ebenfalls ab—bevorzugen Sie die spezifischen Typen, wenn Sie Ladefehler von Speicherfehlern unterscheiden möchten.

Häufige Probleme

ProblemUrsacheLösung
PsdLoadException auf einer Datei, die sich in anderen Werkzeugen problemlos öffnen lässtDie Eingabe ist kein gültiges PSD/PSB-Dokument oder verwendet ein Merkmal, das der Parser dieser FOSS-Version nicht erkenntStellen Sie sicher, dass die Datei ein echtes PSD/PSB-Dokument ist; melden Sie nicht unterstützte Funktionen getrennt von Ladefehlern
PsdSaveException beim Schreiben in einen StreamDer Ziel-Stream ist möglicherweise nicht beschreibbar oder wurde bereits freigegebenBestätigen Sie, dass der Stream geöffnet und beschreibbar ist, bevor Sie Save() aufrufen.

FAQ

Versucht diese Bibliothek nach einem Lade- oder Speicherfehler automatisch erneut?

Nein. PsdLoadException und PsdSaveException werden einmal ausgelöst und müssen vom Aufrufer behandelt werden; es gibt keinen automatischen Wiederholungsversuch.

Kann ich die ursprüngliche Ursache einer wrapped exception untersuchen?

Ja, wenn einer bereitgestellt wird — beide Konstruktoren akzeptieren einen innerException-Parameter, der über die standardmäßige Exception.InnerException-Eigenschaft zugänglich ist.


API Reference Zusammenfassung

Klasse/MethodeBeschreibung
PsdLoadException(message) / PsdLoadException(message, innerException)Wird ausgelöst, falls ein Dokument nicht geladen werden kann
PsdSaveException(message) / PsdSaveException(message, innerException)Wird ausgelöst, falls ein Dokument nicht gespeichert werden kann

Siehe auch

 Deutsch