कुल मिलाकर, कोशिश / कैच का उपयोग करने से इतना अधिक नुकसान होता है, क्योंकि संसाधनों की दृष्टि से कैच ब्लॉक इतना महंगा है। उपयोग / पकड़ने का प्रयास मुझे जोखिम प्रबंधन की याद दिलाता है । जोखिम प्रबंधन के दो आयाम हैं:
- जोखिम होने की संभावना
- इससे नुकसान हो सकता है
अब, यदि आप अपने घर से बाहर जाते हैं, तो एक पियानो आपके सिर पर गिरता है, जबकि ऐसा होने के लिए बहुत अवांछित है (शायद 0.001%), लेकिन आपको मार सकता है।
अपवाद हैंडलिंग ऐसा है। कोशिश करो ब्लॉक महंगा नहीं है। लेकिन पकड़ ब्लॉक वास्तव में महंगा है, क्योंकि इसे स्टैक ट्रेस की एक तालिका बनाने और अन्य सामान करने की आवश्यकता है। इसलिए कोशिश करें / ब्लॉक को पकड़ने के बारे में निर्णय लेने पर, आपको विचार करना चाहिए कि आपने कितनी बार संभवत: कैच ब्लॉक को हिट किया है। यदि 10,000 usages के बीच, आप केवल 1 बार इसे हिट करते हैं, तो इसका उपयोग करें। लेकिन अगर यह एक रूप है, और उपयोगकर्ता शायद इसे सही ढंग से 50% बार नहीं भरता है, तो आपको वहां एक कोशिश / कैच ब्लॉक डालने से बचना चाहिए।
उन स्थानों पर जहां अपवाद घटना की संभावना अधिक होती है, if {} else {}
अपवाद अपवाद से बचने के लिए ब्लॉकों का उपयोग करने की सिफारिश की जाती है । उदाहरण के लिए, जहाँ आप लिखने के बजाय दो संख्याओं को विभाजित करना चाहते हैं:
try
{
int result = a/b;
}
catch (DivisionByZeroException ex)
{
// Showing a message here, and logging of course.
}
आपको लिखना चाहिए:
if (b == 0)
{
int result = a/b;
}
else
{
// Showing a message to user to change the value of b, etc.
}