Alapvető Kivételek

Alap kivételek

A könyvtár a betöltési és mentési hibákat két dedikált kivételtípuson keresztül jelenti: PsdLoadException és PsdSaveException, amelyek mindkettő a szabványos Exception osztályból származnak.


PsdLoadException

Kivétel akkor, ha a Image.Load() / PsdImage.Load() nem tudja értelmezni a bemenetet érvényes PSD vagy PSB dokumentumként.

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

PsdSaveException

Kivétel akkor, ha a PsdImage.Save() nem tudja kiírni a dokumentumot.

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

Konstruktorok

Mindkét kivételtípus ugyanazzal a kétkonstruktoros felépítéssel rendelkezik: egy csak üzenetet fogadó konstruktor, valamint egy üzenet-plusz-belső-kivétel konstruktor, amely alacsonyabb szintű hibát csomagol be.

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

Tippek és legjobb gyakorlatok

  • Kapja el PsdLoadException minden Image.Load()/PsdImage.Load() hívás körül, amely külső bemenetet dolgoz fel.
  • Kapja el PsdSaveException minden PsdImage.Save() hívás körül, ha a cél (lemez, adatfolyam) esetleg nem írható.
  • Mindkét típus a Exception-t bővíti, így egy általánosabb catch (Exception) is elkapja őket — részesítse előnyben a specifikus típusokat, ha meg szeretné különböztetni a betöltési hibákat a mentési hibáktól.

Általános problémák

ProblémaOkJavítás
PsdLoadException egy fájlon, amely más eszközökben rendben megnyílikA bemenet nem érvényes PSD/PSB dokumentum, vagy egy olyan funkciót használ, amelyet ez a FOSS build elemzője nem ismer felErősítse meg, hogy a fájl valódi PSD/PSB dokumentum; jelentse a nem támogatott funkciókat külön a betöltési hibáktól
PsdSaveException írásakor egy adatfolyamraA cél adatfolyam lehet, hogy nem írható, vagy már el lett dobvaMielőtt meghívná a(z) Save(), ellenőrizze, hogy a stream nyitva és írható.

FAQ

Újrapróbálkozik-e ez a könyvtár automatikusan egy betöltési vagy mentési hiba után?

Nem. A PsdLoadException és a PsdSaveException egyszer kerülnek kiváltásra, és a hívónak kell kezelnie őket; nincs automatikus újrapróbálkozás.

Megvizsgálhatom a becsomagolt kivétel eredeti okát?

Igen, ha meg van adva — mindkét konstruktor elfogad egy innerException paramétert, amely a standard Exception.InnerException tulajdonságon keresztül érhető el.


API Reference összegzés

Osztály/MódszerLeírás
PsdLoadException(message) / PsdLoadException(message, innerException)Kivétel, ha a dokumentumot nem lehet betölteni
PsdSaveException(message) / PsdSaveException(message, innerException)Kivétel, ha a dokumentumot nem lehet menteni

Lásd még:

 Magyar