C ++ में, आप यह निर्दिष्ट कर सकते हैं कि कोई फ़ंक्शन एक अपवाद विशेषांक का उपयोग करके एक अपवाद को फेंक सकता है या नहीं फेंक सकता है। उदाहरण के लिए:
void foo() throw(); // guaranteed not to throw an exception
void bar() throw(int); // may throw an exception of type int
void baz() throw(...); // may throw an exception of some unspecified type
मैं निम्नलिखित के कारण वास्तव में उनका उपयोग करने के बारे में संदिग्ध हूं:
- कंपाइलर वास्तव में किसी भी कठोर तरीके से अपवाद निर्दिष्ट करने वालों को लागू नहीं करता है, इसलिए लाभ महान नहीं हैं। आदर्श रूप से, आप एक संकलन त्रुटि प्राप्त करना चाहेंगे।
- यदि कोई फ़ंक्शन किसी अपवाद विनिर्देशक का उल्लंघन करता है, तो मुझे लगता है कि मानक व्यवहार कार्यक्रम को समाप्त करना है।
- VS.Net में, यह थ्रो (X) को थ्रो (...) के रूप में मानता है, इसलिए मानक का पालन मजबूत नहीं है।
क्या आपको लगता है कि अपवाद विनिर्देशक का उपयोग किया जाना चाहिए?
कृपया "हां" या "नहीं" के साथ उत्तर दें और अपने उत्तर को सही ठहराने के लिए कुछ कारण प्रदान करें।