जब आप कक्षा अपवाद (नया अपवाद बनाने के लिए) के साथ कक्षा का विस्तार करते हैं तो आपको serialVersionUID
रखने की चेतावनी मिलती है। मुझे पता है कि serialVersionUID
सीरियलाइजेशन और deserialization जबकि एक महत्वपूर्ण भूमिका निभाता है, लेकिन जब मेरी अपवाद को क्रमबद्ध करने की जरूरत है? क्या कोई मुझे एक व्यावहारिक मामला दे सकता है जिसमें मैं अपनी कस्टम अपवाद कक्षा को क्रमबद्धता और deserialization चाहते हैं?क्यों मेरे अपवाद वर्ग को क्रमबद्ध करने की आवश्यकता है?
उत्तर
ऐसा इसलिए है क्योंकि सभी अपवादों के लिए रूट क्लास, Throwable
Serializable
इंटरफ़ेस लागू करता है। डिफ़ॉल्ट रूप से सभी अपवाद serializable हैं और यह एक भाषा डिजाइन निर्णय है क्योंकि लेखकों को किसी भी विशेष विन्यास के बिना तार भर में भेजने के लिए अपवाद चाहते थे।
यदि बेस क्लास धारावाहिक नहीं है, तो आपको रिमोट विधि विफल होने के मामले में वास्तव में गलत होने पर एक कठिन समय होगा क्योंकि आपके द्वारा निर्मित अपवाद प्रकारों पर कोई नियंत्रण नहीं होगा।
यदि आपका कस्टम अपवाद किसी वितरित एप्लिकेशन (आरएमआई, स्प्रिंग http-invoker, जो भी हो) में उपयोग किया जाता है और रिमोट क्लाइंट से आने वाली सर्वर विधि से फेंक दिया जा सकता है, तो अपवाद को क्रमबद्ध करना होगा तार पार करने और ग्राहक के पास जाने के लिए।
आपके प्रत्येक विकल्प को को परिभाषित करने के लिए प्रत्येक Exception
प्रकार को परिभाषित करना है (आईडीई इसे आपके लिए उत्पन्न कर सकता है) या चेतावनी को दबाने के लिए।
आप मेरे पहले के प्रश्न explicit serialVersionUID considered harmful? प्रासंगिक पा सकते हैं।
- 1. कक्षा को क्रमबद्ध करने के लिए इसकी आवश्यकता क्यों है?
- 2. मेरे .NET एप्लिकेशन को पूर्ण विश्वास की आवश्यकता क्यों है?
- 3. क्यों "{} \" की आवश्यकता है?
- 4. structs को बॉक्स करने की आवश्यकता क्यों है?
- 5. क्यों वेक्टर की आवश्यकता है?
- 6. क्यों PreparedStatement.setNull को sqlType की आवश्यकता है?
- 7. . हमें System.gc(); को कॉल करने की आवश्यकता क्यों है ??
- 8. फॉरवर्डइटर को डिफॉल्ट कॉन्स्ट्रक्टेबल मॉडल करने की आवश्यकता क्यों है?
- 9. क्यों #को printf() का उपयोग करने की आवश्यकता नहीं है?
- 10. क्लास.get एन्नोटेशन() को मुझे कास्ट करने की आवश्यकता क्यों है?
- 11. वेब को HTTP की आवश्यकता क्यों है?
- 12. मेरे संरेखण को गड़बड़ करने की निश्चित स्थिति क्यों है?
- 13. ट्विस्ट की आवश्यकता क्यों है?
- 14. टाइपफ़ोफ़ की आवश्यकता क्यों है?
- 15. मेरे सी ++ सबक्लास को एक स्पष्ट निर्माता की आवश्यकता क्यों है?
- 16. सी ++ मित्र वर्ग को केवल अन्य नामस्थानों में आगे की घोषणा की आवश्यकता क्यों है?
- 17. कॉफ़ीस्क्रिप्ट और node.js भ्रम। तत्काल वर्ग की आवश्यकता है?
- 18. हमें RuntimeException में प्रयास करने की आवश्यकता क्यों नहीं है?
- 19. प्रिंटवाइटर की आवश्यकता क्यों है?
- 20. $ रूट की आवश्यकता क्यों है?
- 21. हमें संरचना की आवश्यकता क्यों है? (सी #)
- 22. स्कैनफ की आवश्यकता क्यों है?
- 23. जावा की invokevirtual को कॉल विधि के संकलन-समय वर्ग को हल करने की आवश्यकता क्यों है?
- 24. क्या 'नया अपवाद फेंक' को बाहर निकलने की आवश्यकता है()?
- 25. स्प्रिंग सिक्योरिटी की रोलवॉटर को उपसर्ग की आवश्यकता क्यों है?
- 26. आपको WORKON_HOME पर्यावरण चर सेट करने की आवश्यकता क्यों है?
- 27. कोड प्रथम कक्षाओं को नेविगेशन गुणों की आवश्यकता क्यों है?
- 28. मेरे रेल एप्लिकेशन को एक यथार्थ वास्तुकला में फिट करने के लिए मुझे कड़ी मेहनत करने की आवश्यकता क्यों है?
- 29. संपत्ति को परिभाषित करने की विधि की आवश्यकता है
- 30. सत्र_ नष्ट क्यों करें() की आवश्यकता है?