OCaml

2012-04-24 11 views
5

में कई अपवाद प्रकारों को संभालना निम्नलिखित संभव है?OCaml

try 
    (* danger zone *) 
with Not_found e -> 
    (* code to handle not found *) 
with t -> 
    (* code to handle all other issues *) 

अगर मैं टाइप कि उच्चस्तरीय में, मैं दूसरी with पर एक सिंटैक्स त्रुटि मिलता है। शायद कुछ वाक्यविन्यास है मुझे पता नहीं है?

क्या प्रत्येक with से मेल खाने के लिए try को प्रीपेड करने का पसंदीदा तरीका है?

+0

और क्या आपको लगता है कि वाक्य रचना आप लिखते हैं काम करना चाहिए बनाता है? क्या आपने इसे किसी और के कोड में देखा है? या मैनुअल या ट्यूटोरियल में ऐसा कोई उदाहरण था? अनुमान कुछ सीखने का एक अच्छा तरीका नहीं है। – ygrek

उत्तर

5

withmatch अभिव्यक्ति है; आप एक से अधिक पैटर्न के लिए यह दोहराने नहीं है, बजाय आप | का उपयोग प्रत्येक पैटर्न->अभिव्यक्ति अलग करने के लिए, एक match साथ के रूप में।

13

with हिस्सा पैटर्न की एक श्रृंखला है, इसलिए इस प्रकार आप यह लिख सकते हैं:

try 
    (* dangerous code area *) 
with 
    | Not_found -> (* Not found handling code *) 
    | t -> (* Handle other issues here *)