Kernuitzonderingen

Kernuitzonderingen

De bibliotheek meldt laad- en opslagfouten via twee speciale exceptietypen: PsdLoadException en PsdSaveException, die beide de standaard Exception-klasse uitbreiden.


PsdLoadException

Wordt gegenereerd wanneer Image.Load() / PsdImage.Load() de invoer niet kan ontleden als een geldig PSD- of PSB-document.

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

PsdSaveException

Treft plaats wanneer PsdImage.Save() het document niet kan wegschrijven.

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

Constructors

Beide exceptietypen hebben dezelfde tweedelige constructorstructuur: een constructor die alleen een bericht accepteert, en een constructor met een bericht plus een inner-exception voor het omsluiten van een fout op een lager niveau.

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

Tips en best practices

  • Vang PsdLoadException op rondom elke Image.Load()/PsdImage.Load()-aanroep die externe invoer verwerkt.
  • Vang PsdSaveException op rondom elke PsdImage.Save()-aanroep als de bestemming (schijf, stream) mogelijk niet schrijfbaar is.
  • Beide types breiden Exception uit, dus een bredere catch (Exception) vangt ze ook — geef de voorkeur aan de specifieke types wanneer je laad-fouten wilt onderscheiden van opslaan-fouten.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
PsdLoadException op een bestand dat in andere tools wel opentDe invoer is geen geldig PSD/PSB-document, of gebruikt een functie die de parser van deze FOSS-build niet herkentBevestig dat het bestand een echt PSD/PSB-document is; rapporteer niet-ondersteunde functies apart van laadfouten
PsdSaveException bij het schrijven naar een streamDe bestemmingsstream is mogelijk niet schrijfbaar of is al verwijderdBevestig dat de stream geopend en beschrijfbaar is voordat Save() wordt aangeroepen

FAQ

Probeert deze bibliotheek automatisch opnieuw na een laad- of opslaan-fout?

Nee. PsdLoadException en PsdSaveException worden één keer opgegooid en moeten door de aanroeper worden afgehandeld; er is geen automatische herpoging.

Kan ik de oorspronkelijke oorzaak van een ingepakte exceptie inspecteren?

Ja, wanneer er een wordt geleverd — beide constructors accepteren een innerException parameter, toegankelijk via de standaard Exception.InnerException eigenschap.


API Reference Samenvatting

Klasse/MethodeBeschrijving
PsdLoadException(message) / PsdLoadException(message, innerException)Wordt getriggerd wanneer een document niet kan worden geladen
PsdSaveException(message) / PsdSaveException(message, innerException)Wordt getriggerd wanneer een document niet kan worden opgeslagen

Zie ook

 Nederlands