Alapvető kivételek

Alap Kivételek

Aspose.PSD FOSS for Python két kivételtípust határoz meg, amelyek a PSD/PSB kezelésére specifikusak: PsdLoadException, amely dokumentum elemzése közben kerül kivételhez, és PsdSaveException, amely írás közben kerül kivételhez. Mindkettő a beépített Exception osztályból származik, és elfogad egy üzenetet plusz egy opcionális inner_exception.


Betöltési Hibák Elkapása

PsdLoadException több szerkezeti érvényesítési hiba esetén kerül kivételhez dokumentum elemzése közben:

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}")

Gyakori üzenetek a következők: "Invalid PSD signature. Expected '8BPS' (0x38425053)." (a fájl nem PSD/PSB aláírással kezdődik), "Unsupported PSD version: {n}. ..." (a verziómező sem PSD, sem PSB), és "{section} length {n} exceeds the enclosing section boundary." (egy szakasz deklarált hossza nem egyezik a fájl tényleges méretével).


Mentési Hibák Elkapása

PsdSaveException egyetlen kivételhelyet tartalmaz ebben a FOSS buildben — egy Pascal-karakterlánc hossz ellenőrzése:

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}")

Az üzenete "PSD Pascal string length {n} exceeds the supported maximum 255." — akkor keletkezik, amikor egy réteg vagy erőforrás neve meghaladja a 255 bájtot.


Belső kivétel vizsgálata

Mindkét kivételtípus elfogad egy inner_exception konstruktorargumentumot, amely kitöltődik, amikor egy alapszintű I/O hiba okozza a kivételt:

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

A NotSupportedException minta

Több tulajdonság beállító a API más részein kivételt dob NotSupportedException ahelyett, hogy PsdLoadException/PsdSaveException — ez azt jelzi, hogy a tulajdonság szándékosan csak olvasható ebben a FOSS változatban, nem pedig elemzési vagy írási hiba. Lásd Resources and Layers az érintett konkrét tulajdonságoknál.


Tippek és bevált gyakorlatok

  • Kapcsold el konkrétan a PsdLoadException és PsdSaveException kivételeket a Exception alapkivétel helyett, ha meg kell különböztetned a betöltési hibákat a mentési hibáktól.
  • ArgumentNullException (akkor keletkezik, amikor a PsdImage.load egy None adatfolammal hívódik) és NotSupportedException különálló kivételtípusok — nem a PsdLoadException/PsdSaveException változatai.

Gyakori problémák

ProblémaOkJavítás
PsdLoadException egy nem támogatott verziórólA fájl verziómezője sem a szabványos PSD, sem a PSB értéknek nem felel megErősítse meg, hogy a fájl egy eredeti, sértetlen PSD/PSB dokumentum
PsdSaveException egy Pascal-karakterlánc hosszával kapcsolatbanEgy réteg vagy erőforrás neve meghaladja a 255 bájtotRövidítse az értéket mentés előtt

FAQ

A PsdLoadException és a PsdSaveException közös alapkivétel típust használnak?

Nem — mindkettő közvetlenül a beépített Exception osztályból származik, nem egymásból vagy egy közös Aspose.PSD alapkivétel osztályból.

A Exception elkapása is elkapja ezeket a két típust?

Igen, mivel mindkettő a Exception osztályból származik — de a konkrét típusok elkapása lehetővé teszi, hogy megkülönböztesd a betöltési hibákat a mentési hibáktól.


API Reference Összegzés

Osztály/MódszerLeírás
PsdLoadException(message, inner_exception=None)A dokumentum elemzése során keletkezett
PsdSaveException(message, inner_exception=None)A dokumentum írása során keletkezett
NotSupportedException(message, inner_exception=None)A read-only-in-this-FOSS-build beállítók által keletkezett

Lásd még:

 Magyar