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
PsdLoadExceptionop rondom elkeImage.Load()/PsdImage.Load()-aanroep die externe invoer verwerkt. - Vang
PsdSaveExceptionop rondom elkePsdImage.Save()-aanroep als de bestemming (schijf, stream) mogelijk niet schrijfbaar is. - Beide types breiden
Exceptionuit, dus een brederecatch (Exception)vangt ze ook — geef de voorkeur aan de specifieke types wanneer je laad-fouten wilt onderscheiden van opslaan-fouten.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
PsdLoadException op een bestand dat in andere tools wel opent | De invoer is geen geldig PSD/PSB-document, of gebruikt een functie die de parser van deze FOSS-build niet herkent | Bevestig dat het bestand een echt PSD/PSB-document is; rapporteer niet-ondersteunde functies apart van laadfouten |
PsdSaveException bij het schrijven naar een stream | De bestemmingsstream is mogelijk niet schrijfbaar of is al verwijderd | Bevestig 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/Methode | Beschrijving |
|---|---|
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 |