त्रुटि हैंडलिंग प्रवाह (कैसे प्रोग्राम एक असाधारण स्थिति से उबरने की कोशिश कर रहा है) से सामान्य कार्यक्रम प्रवाह (कार्यक्रम को करने के लिए डिज़ाइन किया गया) को अलग करने के लिए मौजूद है ।
यह कोड को अधिक स्पष्ट और बनाए रखने में आसान बनाता है।
दो संहिताओं पर विचार करें:
try:
do1() # this is obvoiusly a normal
do2() # program flow
except:
oups() # this is exception handling code
इसकी तुलना में:
if foo():
thing1() # is this part of normal program flow?
else:
thing2() # or maybe this one? Or both? When?
बेशक, अपवाद हैंडलिंग प्रोग्राम को दुर्घटनाग्रस्त होने से बचाने के लिए उपयोग किया जा सकता है:
try { // very bad code
my();
whole();
ugly();
application();
here();
} catch (Throwable t) {
// pretend it's ok
}
लेकिन यह आधुनिक प्रोग्रामिंग भाषाओं में अपवादों का कारण नहीं है।
तुम भी उपयोग कर सकते हैं whileऔर breakके बजाय if, लेकिन यह नहीं है क्या whileऔर breakके लिए कर रहे हैं।