Exceptions de base

Exceptions principales

La bibliothèque signale les échecs de chargement et d’enregistrement via deux types d’exception dédiés: PsdLoadException et PsdSaveException, tous deux dérivant de la classe standard Exception.


PsdLoadException

Lancée lorsque Image.Load() / PsdImage.Load() ne peuvent pas analyser l’entrée comme un document PSD ou PSB valide.

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

PsdSaveException

Lancée lorsque PsdImage.Save() ne peut pas écrire le document.

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

Constructeurs

Les deux types d’exception possèdent la même forme à deux constructeurs: un constructeur avec uniquement un message, et un constructeur avec message + exception interne pour encapsuler une défaillance de niveau inférieur.

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

Conseils et bonnes pratiques

  • Capturez PsdLoadException autour de chaque appel Image.Load()/PsdImage.Load() qui traite des entrées externes.
  • Capturez PsdSaveException autour de chaque appel PsdImage.Save() si la destination (disque, flux) pourrait ne pas être accessible en écriture.
  • Les deux types étendent Exception, donc un catch (Exception) plus large les capture également — privilégiez les types spécifiques lorsque vous souhaitez distinguer les échecs de chargement des échecs d’enregistrement.

Problèmes courants

ProblèmeCauseCorrection
PsdLoadException sur un fichier qui s’ouvre correctement dans d’autres outilsL’entrée n’est pas un document PSD/PSB valide, ou utilise une fonctionnalité que l’analyseur de cette version FOSS ne reconnaît pasVérifiez que le fichier est un véritable document PSD/PSB ; signalez les fonctionnalités non prises en charge séparément des échecs de chargement
PsdSaveException lors de l’écriture vers un fluxLe flux de destination peut ne pas être accessible en écriture ou avoir déjà été libéréConfirmez que le flux est ouvert et accessible en écriture avant d’appeler Save()

FAQ

Cette bibliothèque réessaie-t-elle automatiquement après un échec de chargement ou d’enregistrement?

Non. PsdLoadException et PsdSaveException sont levés une fois et doivent être gérés par l’appelant; il n’existe aucun réessai automatique.

Puis-je inspecter la cause originale d’une exception enveloppée?

Oui, lorsqu’il est fourni — les deux constructeurs acceptent un paramètre innerException, accessible via la propriété standard Exception.InnerException.


API Reference Résumé

Classe/MéthodeDescription
PsdLoadException(message) / PsdLoadException(message, innerException)Levée lorsqu’un document ne peut pas être chargé
PsdSaveException(message) / PsdSaveException(message, innerException)Levée lorsqu’un document ne peut pas être enregistré

Voir aussi

 Français