Κύριες Εξαιρέσεις

Κύριες Εξαιρέσεις

Κύριες Εξαιρέσεις

Η βιβλιοθήκη αναφέρει αποτυχίες φόρτωσης και αποθήκευσης μέσω δύο ειδικών τύπων εξαιρέσεων: PsdLoadException και PsdSaveException, οι οποίοι κληρονομούν την τυπική κλάση Exception.


PsdLoadException

Εκτοξεύεται όταν το Image.Load() / PsdImage.Load() δεν μπορεί να αναλύσει την είσοδο ως έγκυρο έγγραφο PSD ή PSB.

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

PsdSaveException

Εκτοξεύεται όταν το PsdImage.Save() δεν μπορεί να γράψει το έγγραφο.

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

Κατασκευαστές

Και οι δύο τύποι εξαιρέσεων έχουν την ίδια μορφή δύο κατασκευαστών: έναν κατασκευαστή μόνο με μήνυμα και έναν κατασκευαστή μήνυμα-συν-εσωτερική-εξαίρεση για την περιτύλιξη μιας αποτυχίας χαμηλότερου επιπέδου.

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

Συμβουλές και Καλές Πρακτικές

  • Πιάνετε PsdLoadException γύρω από κάθε κλήση Image.Load()/PsdImage.Load() που επεξεργάζεται εξωτερική είσοδο.
  • Πιάνετε PsdSaveException γύρω από κάθε κλήση PsdImage.Save() εάν ο προορισμός (δίσκος, ροή) ενδέχεται να μην είναι εγγράψιμος.
  • Και οι δύο τύποι επεκτείνουν το Exception, έτσι ένα πιο γενικό catch (Exception) τα πιάνει επίσης — προτιμήστε τους συγκεκριμένους τύπους όταν θέλετε να διακρίνετε αποτυχίες φόρτωσης από αποτυχίες αποθήκευσης.

Συνηθισμένα Προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
PsdLoadException σε ένα αρχείο που ανοίγει κανονικά σε άλλα εργαλείαΗ είσοδος δεν είναι έγκυρο έγγραφο PSD/PSB, ή χρησιμοποιεί μια δυνατότητα που ο αναλυτής αυτής της έκδοσης FOSS δεν αναγνωρίζειΕπιβεβαιώστε ότι το αρχείο είναι ένα αυθεντικό έγγραφο PSD/PSB; αναφέρετε τις μη υποστηριζόμενες δυνατότητες ξεχωριστά από τις αποτυχίες φόρτωσης
PsdSaveException κατά τη γραφή σε ροήΗ ροή προορισμού μπορεί να μην είναι εγγράψιμη ή να έχει ήδη διαγραφείΕπιβεβαιώστε ότι η ροή είναι ανοιχτή και εγγράψιμη πριν καλέσετε το Save()

FAQ

Επαναπροσπαθεί αυτή η βιβλιοθήκη αυτόματα μετά από αποτυχία φόρτωσης ή αποθήκευσης;

Όχι. Τα PsdLoadException και PsdSaveException εγείρονται μία φορά και πρέπει να αντιμετωπιστούν από τον καλούντα· δεν υπάρχει αυτόματη επαναπροσπάθεια.

Μπορώ να εξετάσω την αρχική αιτία μιας τυλιγμένης εξαίρεσης;

Ναι, όταν παρέχεται — και οι δύο κατασκευαστές δέχονται μια παράμετρο innerException, προσβάσιμη μέσω της τυπικής ιδιότητας Exception.InnerException.


API Reference Σύνοψη

Κλάση/ΜέθοδοςΠεριγραφή
PsdLoadException(message) / PsdLoadException(message, innerException)Δημιουργείται όταν δεν είναι δυνατόν να φορτωθεί ένα έγγραφο
PsdSaveException(message) / PsdSaveException(message, innerException)Δημιουργείται όταν δεν είναι δυνατόν να αποθηκευτεί ένα έγγραφο

Δείτε επίσης

 Ελληνικά