कुछ समय के लिए F # option
का उपयोग करने के बाद, मुझे एहसास हुआ कि इसका उपयोग असाधारण मामलों को संभालने के लिए किया जा सकता है। सूची सेअपवाद हैंडलिंग में विकल्प बनाम अपवाद
find
कार्य/सरणी/Seq मॉड्यूल असामान्य मामलों मेंKeyNotFoundException
बढ़ा है, जबकि इसीtryFind
समकक्षों उन स्थितियों मेंNone
वापसी: मैं निम्न उदाहरण में या तोoption
याException
उपयोग कर सकते हैं।- जब मैं बैकट्रैकिंग (एन-क्वींस, सुडोकू इत्यादि को हल करने में) करता हूं, जब भी किसी शाखा में कोई समाधान नहीं होता है, तो मैं या तो अपवाद उठा सकता हूं और इसे बाद में पकड़ सकता हूं या बैकट्रैक पर उस मान से मेल खाने के लिए कोई भी नहीं लौटा सकता हूं। जब तक हम समाधान नहीं पाते हैं तब तक वे मामले अक्सर होते हैं। जबकि
Exception
अधिक नेट मंच में सामान्य रूप से प्रयुक्त है
मेरे छाप option
है, एक और अधिक कार्यात्मक दृष्टिकोण है।
उपयोगिता, प्रदर्शन इत्यादि के मामले में अपवाद प्रबंधन में option
और Exception
के बीच अंतर क्या हैं? एक तकनीक का उपयोग करने वाले मामलों में दूसरे का उपयोग करने से बेहतर है?
वास्तव में, मैंने इसे एक बार मापा और पाया कि सी ++ अपवाद ओसीएमएल की तुलना में 6x धीमी है और .NET की तुलना में 600x धीमी है! –