Pengecualian Inti

Pengecualian Inti

Perpustakaan melaporkan kegagalan memuat dan menyimpan melalui dua tipe pengecualian khusus: PsdLoadException dan PsdSaveException, keduanya memperluas kelas standar Exception.


PsdLoadException

Dilemparkan ketika Image.Load() / PsdImage.Load() tidak dapat mengurai masukan sebagai dokumen PSD atau PSB yang valid.

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

PsdSaveException

Dilemparkan ketika PsdImage.Save() tidak dapat menulis dokumen keluar.

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

Konstruktor

Kedua tipe pengecualian memiliki bentuk dua konstruktor yang sama: konstruktor hanya pesan, dan konstruktor pesan-dengan-pengecualian-internal untuk membungkus kegagalan tingkat lebih rendah.

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

Tips dan Praktik Terbaik

  • Tangkap PsdLoadException di sekitar setiap pemanggilan Image.Load()/PsdImage.Load() yang memproses input eksternal.
  • Tangkap PsdSaveException di sekitar setiap pemanggilan PsdImage.Save() jika tujuan (disk, aliran) mungkin tidak dapat ditulisi.
  • Kedua tipe memperluas Exception, sehingga catch (Exception) yang lebih umum juga menangkapnya — pilih tipe spesifik ketika Anda ingin membedakan kegagalan pemuatan dari kegagalan penyimpanan.

Masalah Umum

MasalahPenyebabPerbaikan
PsdLoadException pada file yang dapat dibuka dengan baik di alat lainMasukan bukan dokumen PSD/PSB yang valid, atau menggunakan fitur yang tidak dikenali oleh parser build FOSS iniPastikan file tersebut merupakan dokumen PSD/PSB yang asli; laporkan fitur yang tidak didukung secara terpisah dari kegagalan pemuatan
PsdSaveException saat menulis ke aliranAliran tujuan mungkin tidak dapat ditulis atau mungkin sudah dibuangPastikan aliran terbuka dan dapat ditulis sebelum memanggil Save()

FAQ

Apakah perpustakaan ini secara otomatis mencoba kembali setelah kegagalan memuat atau menyimpan?

Tidak. PsdLoadException dan PsdSaveException dilempar sekali dan harus ditangani oleh pemanggil; tidak ada percobaan ulang otomatis.

Bisakah saya memeriksa penyebab asli dari pengecualian yang dibungkus?

Ya, bila disediakan — kedua konstruktor menerima parameter innerException, dapat diakses melalui properti standar Exception.InnerException.


API Reference Ringkasan

Kelas/MetodeDeskripsi
PsdLoadException(message) / PsdLoadException(message, innerException)Dilempar ketika dokumen tidak dapat dimuat
PsdSaveException(message) / PsdSaveException(message, innerException)Dilempar ketika dokumen tidak dapat disimpan

Lihat Juga

 Bahasa Indonesia