Temel İstisnalar

Temel İstisnalar

Aspose.PSD FOSS for Python, PSD/PSB işleme özgü iki istisna türü tanımlar: PsdLoadException, bir belge ayrıştırılırken yükseltilir ve PsdSaveException, bir belge yazılırken yükseltilir. İkisi de yerleşik Exception türevleridir ve bir mesaj ile isteğe bağlı inner_exception kabul eder.


Yükleme Zamanı Hatalarını Yakalama

PsdLoadException, bir belge ayrıştırılırken bir dizi yapısal doğrulama hatası için yükseltilir:

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

Yaygın mesajlar şunları içerir: "Invalid PSD signature. Expected '8BPS' (0x38425053)." (PSD/PSB imzası ile başlamayan dosya), "Unsupported PSD version: {n}. ..." (sürüm alanı ne PSD ne de PSB), ve "{section} length {n} exceeds the enclosing section boundary." (bir bölümün bildirilen uzunluğu dosyanın gerçek boyutuyla tutarsız).


Kaydetme Zamanı Hatalarını Yakalama

PsdSaveException, bu FOSS derlemesinde tek bir yükseltme noktasına sahiptir — bir Pascal-dizgesi uzunluk kontrolü:

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

Mesajı "PSD Pascal string length {n} exceeds the supported maximum 255." — bir katman veya kaynak adı 255 baytı aştığında ortaya çıkar.


İç İstisna İnceleniyor

Her iki istisna türü de inner_exception yapıcı argümanını kabul eder; bu, temel bir I/O hatası istisnayı tetiklediğinde doldurulur:

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 Deseni

Diğer yerlerde API içinde birkaç özellik ayarlayıcısı fırlatır NotSupportedException yerine PsdLoadException/PsdSaveException — bu, bu FOSS derlemesinde kasıtlı olarak yalnızca okunabilir bir özelliği işaret eder, bir ayrıştırma ya da yazma hatası değildir. Bakınız Resources and Layers etkilenen belirli özellikler için.


İpuçları ve En İyi Uygulamalar

  • Yükleme hatalarını kaydetme hatalarından ayırmanız gerektiğinde, temel Exception yerine özellikle PsdLoadException ve PsdSaveException‘i yakalayın.
  • ArgumentNullException (PsdImage.load bir None akışı ile çağrıldığında ortaya çıkar) ve NotSupportedException ayrı istisna türleridir — PsdLoadException/PsdSaveException‘nin varyantları değildir.

Sık Karşılaşılan Sorunlar

SorunSebepDüzeltme
PsdLoadException desteklenmeyen bir sürüm hakkındaDosyanın sürüm alanı ne standart PSD ne de PSB değeri.Dosyanın gerçek, bozulmamış bir PSD/PSB belge olduğunu doğrulayın.
PsdSaveException bir Pascal dizesi uzunluğu hakkında.Bir katman veya kaynak adı 255 baytı aşıyor.Kaydetmeden önce değeri kısaltın.

FAQ

PsdLoadException ve PsdSaveException ortak bir temel istisna türünü paylaşıyor mu?

Hayır — her ikisi de yerleşik Exception‘dan doğrudan türetilir, birbirlerinden veya ortak bir Aspose.PSD temel istisna sınıfından türemez.

Exception yakalanırsa bu iki tür de yakalanır mı?

Evet, çünkü her ikisi de Exception‘dan türetilir — ancak belirli türleri yakalamak, yükleme hatalarını kaydetme hatalarından ayırt etmenizi sağlar.


API Reference Özeti

Sınıf/YöntemAçıklama
PsdLoadException(message, inner_exception=None)Belge ayrıştırması sırasında tetiklendi.
PsdSaveException(message, inner_exception=None)Belge yazımı sırasında ortaya çıkar
NotSupportedException(message, inner_exception=None)Bu FOSS yapısında yalnızca okunabilir ayarlayıcılar tarafından yükseltilir

Ayrıca Bakınız

 Türkçe