Kernuitzonderingen

Kernuitzonderingen

Aspose.PSD FOSS voor Python definieert twee type uitzonderingen die specifiek zijn voor PSD/PSB verwerking: PsdLoadException, opgegooid tijdens het parseren van een document, en PsdSaveException, opgegooid tijdens het schrijven ervan. Beide zijn afgeleid van de ingebouwde Exception en accepteren een bericht plus een optionele inner_exception.


Afvangen van Laadtijdfouten

PsdLoadException wordt opgegooid voor verschillende structurele validatiefouten tijdens het parseren van een document:

from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.coreexceptions.psdloadexception import PsdLoadException

try:
    image = PsdImage.load(input_path)
except PsdLoadException as ex:
    print(f"Failed to load PSD/PSB file: {ex}")

Veelvoorkomende berichten omvatten "Invalid PSD signature. Expected '8BPS' (0x38425053)." (het bestand begint niet met een PSD/PSB-handtekening), "Unsupported PSD version: {n}. ..." (het versieveld is noch PSD noch PSB), en "{section} length {n} exceeds the enclosing section boundary." (de verklaarde lengte van een sectie is niet consistent met de werkelijke grootte van het bestand).


Afvangen van Opslagtijdfouten

PsdSaveException heeft één opwerppunt in deze FOSS-build — een Pascal-string lengtescontrole:

from aspose_psd_foss.coreexceptions.psdsaveexception import PsdSaveException

try:
    image.save(output_path)
except PsdSaveException as ex:
    print(f"Failed to save PSD/PSB file: {ex}")

Het bericht is "PSD Pascal string length {n} exceeds the supported maximum 255." — opgegooid wanneer een laag- of resource-naam groter is dan 255 bytes.


Inspecteren van een innerlijke uitzondering

Beide exceptietypen accepteren een inner_exception constructor-argument, dat wordt gevuld wanneer een onderliggende I/O-fout de uitzondering veroorzaakte:

try:
    image = PsdImage.load(input_path)
except PsdLoadException as ex:
    if ex.inner_exception is not None:
        print(f"Underlying cause: {ex.inner_exception}")

Het NotSupportedException-patroon

Verschillende property setters elders in de API gooien NotSupportedException in plaats van PsdLoadException/PsdSaveException — dit duidt op een eigenschap die opzettelijk alleen-lezen is in deze FOSS-build, geen parsing- of schrijffout. Zie Resources and Layers voor de specifieke getroffen eigenschappen.


Tips en best practices

  • Vang PsdLoadException en PsdSaveException specifiek op in plaats van de basis Exception wanneer je laad-fouten moet onderscheiden van opslaan-fouten.
  • ArgumentNullException (opgegooid wanneer PsdImage.load wordt aangeroepen met een None stream) en NotSupportedException zijn afzonderlijke exceptietypen — geen varianten van PsdLoadException/PsdSaveException.

Algemene problemen

ProbleemOorzaakOplossing
PsdLoadException over een niet-ondersteunde versieHet versieveld van het bestand is noch de standaard PSD- noch PSB-waardeBevestig dat het bestand een echt, onbeschadigd PSD/PSB document is
PsdSaveException over een Pascal-tekenreekslengteEen laag- of resource-naam overschrijdt 255 bytesVerkort de waarde voordat u opslaat

FAQ

Hebben PsdLoadException en PsdSaveException een gemeenschappelijk basis-uitzonderingstype?

Nee — beide zijn direct afgeleid van de ingebouwde Exception, niet van elkaar of van een gedeelde Aspose.PSD basis-uitzonderingsklasse.

Zal het vangen van Exception ook deze twee types vangen?

Ja, omdat beide afgeleid zijn van Exception — maar het vangen van de specifieke types stelt je in staat om laad-fouten van opslaan-fouten te onderscheiden.


API Reference Samenvatting

Klasse/MethodeBeschrijving
PsdLoadException(message, inner_exception=None)Opgetreden tijdens het parseren van het document
PsdSaveException(message, inner_exception=None)Opgetreden tijdens het schrijven van het document
NotSupportedException(message, inner_exception=None)Opgetreden door read-only-in-this-FOSS-build setters

Zie ook

 Nederlands