חריגות ליבה

חריגות ליבה

הספרייה מדווחת על כשלי טעינה ושמירה דרך שני סוגי חריגה ייעודיים: PsdLoadException ו-PsdSaveException, שכל אחד מהם מרחיב את המחלקה הסטנדרטית Exception.


PsdLoadException

נזרק כאשר Image.Load() / PsdImage.Load() אינם יכולים לנתח את הקלט כמסמך PSD או PSB תקין.

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

PsdSaveException

נזרק כאשר PsdImage.Save() אינו יכול לכתוב את המסמך.

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

בנאים

שני סוגי החריגה בעלי אותה צורת שני קונסטרוקטורים: קונסטרוקטור המכיל רק הודעה, וקונסטרוקטור המכיל הודעה וחריגה פנימית לעיטוף כשל ברמה נמוכה יותר.

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

טיפים ושיטות עבודה מומלצות

  • תפוס PsdLoadException סביב כל קריאה של Image.Load()/PsdImage.Load() שמעבדת קלט חיצוני.
  • תפוס PsdSaveException סביב כל קריאה של PsdImage.Save() אם היעד (דיסק, זרם) עלול שלא להיות ניתן לכתיבה.
  • שני הסוגים מרחיבים את Exception, ולכן catch (Exception) רחב יותר גם תופס אותם — העדף את הסוגים הספציפיים כשאתה רוצה להבדיל בין כשלי טעינה לכשלי שמירה.

בעיות נפוצות

בעיהסיבהתיקון
PsdLoadException על קובץ שנפתח כראוי בתוכנות אחרותהקלט אינו מסמך PSD/PSB תקף, או שהוא משתמש בתכונה שהמתאם של גרסת ה-FOSS הזו אינו מזההאמת שהקובץ הוא מסמך PSD/PSB אמיתי; דווח על תכונות שאינן נתמכות בנפרד מכישלונות טעינה
PsdSaveException בעת כתיבה לזרםייתכן שהזרם היעד אינו ניתן לכתיבה או שכבר נזולודא שהזרם פתוח וניתן לכתיבה לפני קריאה לSave()

FAQ

האם הספרייה הזו מנסה שוב באופן אוטומטי לאחר כשל בטעינה או שמירה?

לא. PsdLoadException ו-PsdSaveException נזרקים פעם אחת ויש לטפל בהם על ידי הקורא; אין ניסיון חוזר אוטומטי.

האם אני יכול לבדוק את הסיבה המקורית של חריגה עטופה?

כן, כאשר הוא מסופק — שני הקונסטרוקטורים מקבלים פרמטר innerException, הנגיש דרך המאפיין הסטנדרטי Exception.InnerException.


API Reference סיכום

מחלקה/מתודהתיאור
PsdLoadException(message) / PsdLoadException(message, innerException)נזרק כאשר לא ניתן לטעון מסמך
PsdSaveException(message) / PsdSaveException(message, innerException)נזרק כאשר לא ניתן לשמור מסמך

ראה גם

 עברית