ये एक ही चीज नहीं हैं।
एक बग सॉफ्टवेयर का एक टुकड़ा के अनपेक्षित व्यवहार है: सॉफ्टवेयर नहीं करता है क्या यह करने के लिए माना जाता है। कीड़े साफ्टवेयर विकास के सभी स्तरों पर रह सकते हैं, जो सादे पुराने टाइपो से लेकर तार्किक त्रुटियों तक अपर्याप्त कार्यात्मक चश्मा तक हो सकते हैं।
एक अपवाद , इसके विपरीत, सामान्य स्थिति से विचलित, या, विशेष रूप से, ऐसी स्थितियों को संकेत करने और संभालने के लिए उपयोग की जाने वाली भाषा के निर्माण के लिए, एक प्रोग्राम की असामान्य स्थिति को संदर्भित कर सकता है।
तथ्य यह है कि एक अपवाद होता है बग का संकेत हो सकता है, लेकिन अक्सर ऐसा नहीं होता है। उदाहरण के लिए, एक ऐसा एप्लिकेशन जो किसी URL से एक दस्तावेज़ डाउनलोड करने और इसे स्थानीय रूप से संसाधित करने के लिए माना जाता है, जब रिमोट सर्वर डाउन हो जाता है: एक आवेदन सामान्य ऑपरेशन से विचलन कर रहा है (यह दस्तावेज़ को डाउनलोड और संसाधित नहीं कर सकता है), लेकिन अगर यह अपवाद को ठीक से संभालता है और ठीक करता है, फिर कोई बग नहीं है।
इसके विपरीत, बग की उपस्थिति अनिवार्य रूप से खुद को अपवाद के रूप में प्रकट नहीं करती है। एक एप्लिकेशन चुपचाप आपके डेटाबेस में इसे संग्रहीत करने के बजाय आपके द्वारा दर्ज किए गए डेटा को छोड़ सकता है; कोई अपवाद नहीं है, लेकिन यह अभी भी एक बग है।