Temel İstisnalar

Temel İstisnalar

Kütüphane, yükleme ve kaydetme hatalarını iki özel istisna türü aracılığıyla rapor eder: PsdLoadException ve PsdSaveException, her ikisi de standart Exception sınıfını genişletir.


PsdLoadException

Image.Load() / PsdImage.Load() girdiyi geçerli bir PSD veya PSB belgesi olarak ayrıştıramadığında fırlatılır.

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

PsdSaveException

PsdImage.Save() belgeyi dışa yazamadığında fırlatılır.

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

Yapıcılar

Her iki istisna türü de aynı iki yapıcı şekline sahiptir: yalnızca mesaj alan bir yapıcı ve daha düşük seviyeli bir hatayı sarmak için mesaj-ve-iç-istisna yapıcısı.

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

İpuçları ve En İyi Uygulamalar

  • Harici girdi işleyen her Image.Load()/PsdImage.Load() çağrısının etrafında PsdLoadException yakalayın.
  • Hedef (disk, akış) yazılabilir olmayabilir ise her PsdImage.Save() çağrısının etrafında PsdSaveException yakalayın.
  • Her iki tip de Exception‘ı genişletir, bu yüzden daha geniş bir catch (Exception) de onları yakalar — yükleme hatalarını kaydetme hatalarından ayırmak istediğinizde belirli tipleri tercih edin.

Yaygın Sorunlar

SorunNedenDüzeltme
PsdLoadException diğer araçlarda sorunsuz açılan bir dosyadaGirdi geçerli bir PSD/PSB belgesi değil ya da bu FOSS build’in ayrıştırıcısının tanımadığı bir özellik içeriyorDosyanın gerçek bir PSD/PSB belgesi olduğunu doğrulayın; desteklenmeyen özellikleri yükleme hatalarından ayrı raporlayın
PsdSaveException akışa yazarkenHedef akış yazılabilir olmayabilir ya da zaten serbest bırakılmış olabilirAkışın açık ve yazılabilir olduğunu, Save() çağırmadan önce doğrulayın

FAQ

Bu kütüphane bir yükleme ya da kaydetme hatasından sonra otomatik olarak yeniden deneme yapar mı?

Hayır. PsdLoadException ve PsdSaveException bir kez yükseltilir ve çağıran tarafından ele alınmalıdır; otomatik bir yeniden deneme yoktur.

Sarılan bir istisnanın orijinal nedenini inceleyebilir miyim?

Evet, sağlandığında — her iki yapıcı da bir innerException parametresi kabul eder ve standart Exception.InnerException özelliği aracılığıyla erişilebilir.


API Reference Özet

Sınıf/YöntemAçıklama
PsdLoadException(message) / PsdLoadException(message, innerException)Bir belge yüklenemediğinde atılır
PsdSaveException(message) / PsdSaveException(message, innerException)Bir belge kaydedilemediğinde atılır

Ayrıca Bakınız

 Türkçe