दस्तावेज़ और लोकप्रिय ब्लॉग सुझाव देते हैं कि स्विफ्ट एरर हैंडलिंग डू-कैच के साथ किया जाए और एक त्रुटि टाइप एनम या एनएसईआरआरआर उदाहरण को संभालने के लिए किया जाए।स्विफ्ट: क्या एनएसईआरआर अब विरासत के रूप में माना जाना चाहिए?
क्या एररटाइप enum और एनएसईआरआरआर एक कोशिश पकड़ ब्लॉक में परस्पर अनन्य उदाहरण हैं? यदि नहीं, तो आप दोनों फ़ंक्शन को कैसे कार्यान्वित करते हैं?
मैंने एनएसईआरआर उदाहरण को इस तरह के एक enum से जोड़ा है, जो काम करता प्रतीत होता है, लेकिन क्या यह विस्तृत त्रुटि जानकारी लौटने का एक वास्तविक तरीका है?
enum Length : ErrorType {
case NotLongEnough(NSError)
case TooLong(NSError)
}
func myFunction() throws {
throw Length.NotLongEnough(NSError(domain: "domain", code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: "Not long enough mate"]))
}
do {
try myFunction()
} catch Length.NotLongEnough(let error) {
print("\(error)")
}
यह उदाहरण दिखाता है कि त्रुटि प्रकार को एनएसईआरआरआर में कैसे डाला जा सकता है।
do {
let str = try NSString(contentsOfFile: "Foo.bar",
encoding: NSUTF8StringEncoding)
}
catch let error as NSError {
print(error.localizedDescription)
}
मैं एक त्रुटि enum के लिए NSString तो हम यह मान लेना चाहिए कि यह एक NSError उदाहरण हो जाएगा ERRORTYPE के अनुरूप है कि नहीं मिल सकता है? अनुमोदित हम सुनिश्चित करने के लिए कोड चला सकते हैं, लेकिन निश्चित रूप से दस्तावेज़ हमें बताना चाहिए। (मुझे सराहना है कि मैंने दस्तावेज़ों को गलत तरीके से पढ़ा होगा)
क्या कोई मेरी व्यवस्थित रूप से मेरी सभी पोस्टों को वोट दे रहा है? मुझे समझ में नहीं आता कि लोग इन दिनों पोस्ट करने वाली चीज़ों को क्यों वोट दे रहे हैं! –
नेह, इस समय सबकुछ कम हो रहा है, भले ही प्रश्न ठीक से पूछे जाएं, और 1 सेकंड की Google खोज न करें। –
अजनबी चीजें ... – valeCocoa