Eccezioni Core

Eccezioni di base

La libreria segnala i fallimenti di caricamento e salvataggio tramite due tipi di eccezione dedicati: PsdLoadException e PsdSaveException, entrambi estendono la classe standard Exception.


PsdLoadException

Generata quando Image.Load() / PsdImage.Load() non riesce a analizzare l’input come un documento PSD o PSB valido.

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

PsdSaveException

Generata quando PsdImage.Save() non riesce a scrivere il documento.

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

Costruttori

Entrambi i tipi di eccezione hanno la stessa struttura a due costruttori: un costruttore con solo messaggio e un costruttore messaggio-più-eccezione interna per avvolgere un errore di livello inferiore.

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

Suggerimenti e migliori pratiche

  • Cattura PsdLoadException intorno a ogni chiamata Image.Load()/PsdImage.Load() che elabora input esterno.
  • Cattura PsdSaveException intorno a ogni chiamata PsdImage.Save() se la destinazione (disco, stream) potrebbe non essere scrivibile.
  • Entrambi i tipi estendono Exception, quindi un catch (Exception) più ampio li cattura anche — preferisci i tipi specifici quando vuoi distinguere i fallimenti di caricamento da quelli di salvataggio.

Problemi comuni

ProblemaCausaCorrezione
PsdLoadException su un file che si apre correttamente in altri strumentiL’input non è un documento PSD/PSB valido, o utilizza una funzionalità che il parser di questa build FOSS non riconosceConferma che il file è un vero documento PSD/PSB; segnala le funzionalità non supportate separatamente dai fallimenti di caricamento
PsdSaveException durante la scrittura su uno streamLo stream di destinazione potrebbe non essere scrivibile o potrebbe essere già stato eliminatoConferma che lo stream sia aperto e scrivibile prima di chiamare Save()

FAQ

Questa libreria ritenta automaticamente dopo un errore di caricamento o di salvataggio?

No. PsdLoadException e PsdSaveException vengono sollevati una sola volta e devono essere gestiti dal chiamante; non c’è alcun tentativo automatico.

Posso ispezionare la causa originale di un’eccezione avvolta?

Sì, quando ne è fornita — entrambi i costruttori accettano un parametro innerException, accessibile tramite la proprietà standard Exception.InnerException.


API Reference Riepilogo

Classe/MetodoDescrizione
PsdLoadException(message) / PsdLoadException(message, innerException)Viene sollevata quando un documento non può essere caricato
PsdSaveException(message) / PsdSaveException(message, innerException)Viene sollevata quando un documento non può essere salvato

Vedi anche

 Italiano