2013-03-06 2 views
10

मुझे खुद को GetMulti ऑपरेशन करने की आवश्यकता है, जिसमें कुछ इकाइयां मौजूद हैं, लेकिन कुछ नहीं हैं।जीएई गो - गैर-मौजूद इकाई कुंजी के साथ GetMulti का उपयोग कैसे करें?

मेरा वर्तमान कोड, नीचे, एक त्रुटि देता है (datastore: no such entity)।

err := datastore.GetMulti(c, keys, infos)

तो मैं यह कैसे कर सकते हैं? मैं एक "प्राप्त या सम्मिलित करें" विधि का उपयोग करता हूं, लेकिन कोई नहीं है।

उत्तर

15

GetMulti इस मामले में appengine.MultiError वापस कर सकता है। उस के माध्यम से लूप और datastore.ErrNoSuchEntity के लिए देखो। उदाहरण के लिए:

if err := datastore.GetMulti(c, keys, dst); err != nil { 
    if me, ok := err.(appengine.MultiError); ok { 
     for i, merr := range me { 
      if merr == datastore.ErrNoSuchEntity { 
       // keys[i] is missing 
      } 
     } 
    } else { 
     return err 
    } 
} 
+2

यदि आप किसी प्रकार के दावे का उपयोग करते हैं तो आप उस ब्लॉक को छोटा कर सकते हैं। अगर मैं, ठीक है: = गलती। (appengine.MultiError); ठीक है {के लिए {...}} –

+0

धन्यवाद। क्या आपका आशय यही था? – mjibson

+2

हाँ आप अन्य खंड को भी छोड़ सकते हैं और केवल एक कम लाइन के लिए भी त्रुटि वापस कर सकते हैं :-) –

संबंधित मुद्दे