कोर अपवाद
मुख्य अपवाद
यह पुस्तकालय लोड और सहेजने में विफलताओं को दो विशिष्ट अपवाद प्रकारों के माध्यम से रिपोर्ट करता है: 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);उपयोगी सुझाव और सर्वोत्तम प्रथाएँ
- हर
Image.Load()/PsdImage.Load()कॉल के आसपासPsdLoadExceptionको पकड़ें जो बाहरी इनपुट को प्रोसेस करती है। - यदि गंतव्य (डिस्क, स्ट्रीम) लिखने योग्य न हो, तो प्रत्येक
PsdImage.Save()कॉल के आसपासPsdSaveExceptionको पकड़ें। - दोनों प्रकार
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) | जब दस्तावेज़ सहेजा नहीं जा सकता तो यह अपवाद उत्पन्न होता है |