Swift 2.0 में, ऐप्पल ने त्रुटियों को संभालने के लिए एक नया तरीका पेश किया (कोशिश-प्रयास)। और बीटा 6 में कुछ दिन पहले एक नया कीवर्ड भी पेश किया गया था (try?
)। इसके अलावा, मुझे पता था कि मैं try!
का उपयोग कर सकता हूं। 3 कीवर्ड के बीच क्या अंतर है, और प्रत्येक का उपयोग कब करें?कोशिश करें, कोशिश करें! & प्रयत्न? क्या अंतर है, और प्रत्येक का उपयोग कब करें?
उत्तर
निम्नलिखित फेंकने समारोह मान लें:
enum ThrowableError : ErrorType { case BadError }
func doSomething() throws -> String {
if everythingIsFine {
return "Everything is ok"
} else {
throw ThrowableError.BadError
}
}
कोशिश
जब आप एक समारोह है कि फेंक सकता है से कॉल करके आप 2 विकल्प हैं।
आप एक do-पकड़ ब्लॉक के भीतर अपने कॉल आसपास के द्वारा निपटने त्रुटियों की जिम्मेदारी लेने के कर सकते हैं:
do {
let result = try doSomething()
}
catch {
// Here you know about the error
// Feel free to handle to re-throw
}
या बस समारोह कॉल करने का प्रयास है, और में अगले फोन करने वाले को साथ त्रुटि पारित कॉल श्रृंखला:
func doSomeOtherThing() throws -> Void {
// Not within a do-catch block.
// Any errors will be re-thrown to callers.
let result = try doSomething()
}
कोशिश करें!
क्या होता है जब आप इसके अंदर एक नील के साथ एक स्पष्ट रूप से अनचाहे वैकल्पिक तक पहुंचने का प्रयास करते हैं? हाँ, सच है, ऐप क्रैश होगा! वही प्रयास के साथ चला जाता है! यह मूल रूप से त्रुटि श्रृंखला को अनदेखा करता है, और "डू या मर" स्थिति घोषित करता है। यदि बुलाया गया फ़ंक्शन किसी भी त्रुटि को फेंक नहीं देता है, तो सब कुछ ठीक हो जाता है। लेकिन अगर यह असफल हो गया और एक त्रुटि फेंक दी, आपका आवेदन बस को क्रैश करेगा।
let result = try! doSomething() // if an error was thrown, CRASH!
कोशिश करें?
एक्सकोड 7 बीटा 6 में पेश किया गया एक नया कीवर्ड। यह एक वैकल्पिक देता है जो सफल मानों को अनचाहे करता है, और शून्य लौटकर त्रुटि पकड़ता है।
if let result = try? doSomething() {
// doSomething succeeded, and result is unwrapped.
} else {
// Ouch, doSomething() threw an error.
}
या हम नए भयानक गार्ड कीवर्ड का उपयोग कर सकते हैं:, try?
ध्यान दें कि आप त्रुटि है कि जगह ले ली को त्यागकर रहे हैं का उपयोग करके
guard let result = try? doSomething() else {
// Ouch, doSomething() threw an error.
}
// doSomething succeeded, and result is unwrapped.
एक अंतिम टिप्पणी यहाँ, के रूप में यह एक शून्य में अनुवाद किया है। कोशिश का प्रयोग करें? जब आप सफलताओं और विफलता पर अधिक ध्यान केंद्रित कर रहे हैं, तो क्यों नहीं चीजें विफल रहीं।
- 1. कोशिश/पकड़ ब्लॉक का उपयोग कब करें?
- 2. कोशिश करें।
- 3. सी ++ में कोशिश करें और पकड़ें() का उपयोग क्यों करें?
- 4. राइज कोशिश करें और सम्मिलित करें
- 5. कोशिश करें/पकड़ें और थ्रेडिंग
- 6. पाइथन कोशिश करें लैम्बडा
- 7. नेस्टेड कोशिश करें/पकड़ें
- 8. कैच की कोशिश करें
- 9. जावास्क्रिप्ट कोशिश करें/पकड़ें
- 10. कोशिश करें ... आखिरकार एमएसबिल्ड
- 11. Jquery - "यह" कब उपयोग करें और "$ (यह)" कब उपयोग करें?
- 12. एकाधिक या एकल कोशिश करें
- 13. दोहराव कोशिश करें और खंडों को छोड़कर
- 14. प्रत्येक के लिए कब उपयोग करें और xslt में लागू-टेम्पलेट्स का उपयोग कब करें?
- 15. scala.util.Try पर क्या फायदे हैं .. कोशिश करें?
- 16. W3Schools कोशिश करें- यह संपादक
- 17. जावा में कोशिश करें/पकड़ें
- 18. पाइथन यदि बनाम कोशिश करें-
- 19. आईफोन में कोशिश करें और पकड़ें?
- 20. ट्यूपल का उपयोग कब और कब करें?
- 21. हाइबरनेट फ़ेचिंग रणनीति - "शामिल" का उपयोग कब करें और "चयन करें" का उपयोग कब करें?
- 22. वीबी.नेट कोशिश करें/पकड़ें/कब - दूर रहें या इसका उपयोग क्या है?
- 23. कोशिश करें .. कैच ब्लॉक पकड़ा गया है
- 24. टैग/लेबल का उपयोग कब करें और शाखा कब करें?
- 25. क्या "डिस्प्ले का उपयोग कब करें: ब्लॉक कब करें: इनलाइन और कब: इनलाइन-ब्लॉक" और क्यों?
- 26. डिस्पोजेबल, ब्लॉकों का उपयोग करके/कोशिश करें/पकड़ें
- 27. किसी संदेश कतार का उपयोग कब करें और क्लाउड पृष्ठभूमि-कार्यकर्ता का उपयोग कब करें
- 28. कोशिश का उचित उपयोग ..
- 29. गुण और विधियों का उपयोग कब करें?
- 30. "window.onload" का उपयोग कब करें?
आपका दूसरा कोड नमूना ('परिणाम दें = कोशिश करें कुछ() // एक डू-कैच ब्लॉक के भीतर नहीं) को 'थ्रो' के रूप में घोषित विधि के भीतर से बुलाया जाना है, है ना? तो, अगर 'कुछ करना() 'विफल रहता है, तो बाहरी विधि भी बदले में (बदले में)? –
हां, यकीन है। मैं तदनुसार संपादित करूंगा। – Abdurrahman
गार्ड सुसमाचार का प्रचार करने के लिए उपरोक्त –