חריגות ליבה

חריגות ליבה

Aspose.PSD FOSS for Python מגדיר שני סוגי חריגות ספציפיים לטיפול ב-PSD/PSB: PsdLoadException, נזרקת בזמן ניתוח מסמך, ו-PsdSaveException, נזרקת בזמן כתיבת מסמך. שתיהן נגזרות מה-Exception המובנה ומקבלות הודעה וכן inner_exception אופציונלי.


תפיסת תקלות בזמן טעינה

PsdLoadException נזרקת עבור כמה תקלות אימות מבניות בזמן ניתוח מסמך:

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

הודעות נפוצות כוללות את "Invalid PSD signature. Expected '8BPS' (0x38425053)." (הקובץ אינו מתחיל בחתימת PSD/PSB), את "Unsupported PSD version: {n}. ..." (שדה הגרסה אינו PSD ולא PSB), ואת "{section} length {n} exceeds the enclosing section boundary." (האורך המוצהר של קטע אינו תואם לגודל האמיתי של הקובץ).


תפיסת תקלות בזמן שמירה

PsdSaveException יש מקום זריקה יחיד בבנייה זו של FOSS — בדיקת אורך מחרוזת פסקל:

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

הודעתו היא "PSD Pascal string length {n} exceeds the supported maximum 255." — נזרק כאשר שם שכבה או משאב חורג מ-255 בתים.


בדיקת חריגה פנימית

שני סוגי החריגים מקבלים ארגומנט בנאי inner_exception, שמומלא כאשר כשל קלט/פלט בסיסי גרם לחריגה:

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

תבנית NotSupportedException

מספר setters של נכסים במקומות אחרים ב-API מעלים NotSupportedException במקום PsdLoadException/PsdSaveException — זה מסמן נכס שנקבע בכוונה לקריאה בלבד בבנייה הזו של FOSS, ולא כשלון בניתוח או כתיבה. ראה Resources and Layers לנכסים הספציפיים המושפעים.


טיפים ושיטות מומלצות

  • תפוס את PsdLoadException ו-PsdSaveException במפורש במקום את Exception הבסיסי כאשר יש צורך להבחין בין כשלי טעינה לכשלי שמירה.
  • ArgumentNullException (נזרק כאשר PsdImage.load נקרא עם זרם None) ו-NotSupportedException הם סוגי חריגה נפרדים — ולא גרסאות של PsdLoadException/PsdSaveException.

בעיות נפוצות

בעיהסיבהתיקון
PsdLoadException אודות גרסה שאינה נתמכתשדה הגרסה של הקובץ אינו ערך PSD סטנדרטי ולא ערך PSBאשר שהקובץ הוא מסמך PSD/PSB אמיתי ולא פגום
PsdSaveException על אורך מחרוזת פסקלשם של שכבה או משאב חורג מ-255 בתיםקצר את הערך לפני השמירה

FAQ

האם PsdLoadException ו-PsdSaveException חולקים סוג בסיס משותף של חריגה?

לא — שניהם נגזרים ישירות מ-Exception המובנה, ולא זה מזה או ממחלקת בסיס משותפת של Aspose.PSD.

האם לכידת Exception תתפוס גם את שני הסוגים הללו?

כן, מכיוון ששניהם נגזרים מ-Exception — אך לכידת הסוגים הספציפיים מאפשרת להבדיל בין כישלונות טעינה לכישלונות שמירה.


סיכום API Reference

מחלקה/מתודהתיאור
PsdLoadException(message, inner_exception=None)נוצר במהלך ניתוח המסמך
PsdSaveException(message, inner_exception=None)נוצר במהלך כתיבת המסמך
NotSupportedException(message, inner_exception=None)נוצר על ידי קובעי קריאה-רק-בגרסת-FOSS-זו

ראה גם

 עברית