Excepciones principales

Excepciones principales

Excepciones principales

La biblioteca informa fallos de carga y guardado mediante dos tipos de excepción dedicados: PsdLoadException y PsdSaveException, ambos extendiendo la clase estándar Exception.


PsdLoadException

Lanzada cuando Image.Load() / PsdImage.Load() no pueden analizar la entrada como un documento PSD o PSB válido.

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

PsdSaveException

Lanzada cuando PsdImage.Save() no puede escribir el documento.

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

Constructores

Ambos tipos de excepción tienen la misma estructura de dos constructores: un constructor solo con mensaje, y un constructor de mensaje más excepción interna para envolver una falla de nivel inferior.

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

Consejos y mejores prácticas

  • Capture PsdLoadException alrededor de cada llamada Image.Load()/PsdImage.Load() que procesa entrada externa.
  • Capture PsdSaveException alrededor de cada llamada PsdImage.Save() si el destino (disco, flujo) podría no ser escribible.
  • Ambos tipos extienden Exception, por lo que un catch (Exception) más amplio también los captura — prefiere los tipos específicos cuando quiera distinguir fallas de carga de fallas de guardado.

Problemas comunes

ProblemaCausaSolución
PsdLoadException en un archivo que se abre bien en otras herramientasLa entrada no es un documento PSD/PSB válido, o utiliza una característica que el analizador de esta compilación FOSS no reconoceConfirme que el archivo es un documento PSD/PSB auténtico; informe las características no compatibles por separado de los fallos de carga
PsdSaveException al escribir en un flujoEl flujo de destino puede no ser escribible o ya haber sido descartadoConfirme que el flujo esté abierto y sea escribible antes de llamar a Save()

FAQ

¿Esta biblioteca vuelve a intentar automáticamente después de una falla de carga o guardado?

No. PsdLoadException y PsdSaveException se lanzan una vez y deben ser manejados por el llamador; no hay reintento automático.

¿Puedo inspeccionar la causa original de una excepción envuelta?

Sí, cuando se proporciona — ambos constructores aceptan un parámetro innerException, accesible a través de la propiedad estándar Exception.InnerException.


API Reference Resumen

Clase/MétodoDescripción
PsdLoadException(message) / PsdLoadException(message, innerException)Se lanza cuando no se puede cargar un documento
PsdSaveException(message) / PsdSaveException(message, innerException)Se lanza cuando no se puede guardar un documento

Ver también

 Español