Logical errors ये वे errors होती है जब program completely run होने के बाद भी desired output नहीं produce करता है।
Syntactical errors ये वे errors होती है जो program में गलत syntax लिखने से आती है। जैसे की आप गलती से यदि semicolon लगाना भूल जाएँ आदि।
Syntactical errors program के run होने से पहले ही detect हो जाती है। जब तक आप syntactical errors को correct नहीं करते है तब तक program run नहीं होता है। दूसरी और logical errors program में logic correct करने पर ठीक होती है। ध्यान देने योग्य बात ये है की ये दोनों ही तरह की errors run time पर नहीं आती है और program के execution को नहीं रोकती है।
इन दोनों errors के अलावा एक तीसरे तरीके की error भी होती है जो run time पर आती है और program के execution को रोक देती है। इस तरह की error को exception कहते है।
Exception ऐसी conditions होती है जिनका program से कोई connection नहीं होता है। Exceptions user की गलती से या system की limitation से आती है। जैसे की यदि array में केव 10 values डाली जा सकती है और आप loop के द्वारा 11 values डालने का प्रयास कर रहे है। ऐसी situation program a exception generat करेगा।
जब आप छोटे छोटे program बनाते है तो exceptions पर इतना ध्यान नहीं देते है क्योंकि उसका किसी पर कोई effect नहीं होता है। लेकिन जब आप real world software develop करते है तो ऐसी exceptions को handle करना अनिवार्य हो जाता है।
Exceptions को handle करने के लिए C++ आपको exception handling mechanism provide करती है। इस mechanism के द्वारा आप कोई भी exception आने पर उसे handle कर सकते है और program के directly terminate होने के बजाय कोई दूसरा code execute करके program को terminate कर सकते है। उदाहरण के लिए आप program के terminate होने से पहले एक message show कर सकते है।
Exception Handling in c++
जब आप program बनाते है तो errors आना स्वाभाविक है। सभी programming languages में ये errors दो प्रकार की होती है।