यह जांचने के लिए दावा किया जाता है कि कोई शर्त पूरी हो गई है (पूर्व शर्त, पोस्टकंडिशन, इनवेरिएंट) और प्रोग्रामर को डिबगिंग चरण के दौरान छेद खोजने में सहायता करें।यदि दावा विफल रहता है तो रणनीति क्या है
उदाहरण के लिए,
void f(int *p)
{
assert(p);
p->do();
}
मेरा प्रश्न है हम यह मान हालत रिलीज़ मोड में पूरा नहीं किया जा सकता है और उसके अनुसार मामले को संभालने की जरूरत है?
void f(int *p)
{
assert(p);
if (p)
{
p->do();
}
}
आखिरकार, दावा का मतलब है कि परीक्षण की स्थिति कभी भी झूठी नहीं होनी चाहिए। लेकिन अगर, अगर हम इसे जांच नहीं पाते हैं और यह विफल रहता है, तो प्रोग्राम क्रैश हो जाता है। एक दुविधा की तरह लगता है। आप लोग इसके साथ कैसे निपटते हैं?
[डुप्लिकेट [अनुबंध द्वारा परीक्षण द्वारा अपवाद या अपवाद द्वारा डिजाइन?] (Http://stackoverflow.com/questions/117171/design-by-contract-tests-by-assert-or-by-exception) (वहां है विभिन्न दृष्टिकोणों के पेशेवरों और विपक्ष के बारे में बहुत अच्छी चर्चा; इस विषय पर वास्तव में सर्वसम्मति नहीं है) यह भी देखें [कब उत्पादन कोड में दावा कब रहना चाहिए?] (http: // stackoverflow।कॉम/प्रश्न/17732/कब-कथन-रह-इन-प्रोडक्शन-कोड) –
मुझे नहीं लगता कि मैंने कभी एक प्रश्न देखा है जो इतने कम समय में इतने सारे प्रतिक्रिया प्राप्त करता है। –
हाँ, और प्रत्येक एक दूसरे के विरोधाभास :) – EboMike