Objective-C Language
गलती संभालना
खोज…
वाक्य - विन्यास
- NSAssert (स्थिति, fmtMessage, arg1, arg2, ... ) (इटलिक्स में आर्ग वैकल्पिक हैं) - का दावा है कि स्थिति एक सच्चे मूल्य का मूल्यांकन करती है। यदि यह जोर देने से नहीं होता है तो एक अपवाद (NSAssertionException) बढ़ाएगा, जिसमें fmtMessage प्रदान किए गए args के साथ स्वरूपित किया जाएगा।
जोर देकर कहा
@implemenetation Triangle
...
-(void)setAngles:(NSArray *)_angles {
self.angles = _angles;
NSAssert((self.angles.count == 3), @"Triangles must have 3 angles. Array '%@' has %i", self.angles, (int)self.angles.count);
CGFloat angleA = [self.angles[0] floatValue];
CGFloat angleB = [self.angles[1] floatValue];
CGFloat angleC = [self.angles[2] floatValue];
CGFloat sum = (angleA + angleB + angleC);
NSAssert((sum == M_PI), @"Triangles' angles must add up to pi radians (180°). This triangle's angles add up to %f radians (%f°)", (float)sum, (float)(sum * (180.0f / M_PI)));
}
ये दावे सुनिश्चित करते हैं कि आप एक त्रिकोण गलत कोण नहीं देते हैं, यदि आप ऐसा करते हैं तो अपवाद को फेंक दें। यदि वे त्रिभुज की तुलना में अपवाद नहीं फेंकते हैं, तो एक सच्चा त्रिभुज नहीं होने के कारण, बाद के कोड में कुछ बग हो सकते हैं।
त्रुटि और अपवाद को पकड़ने की कोशिश ब्लॉक के साथ हैंडलिंग
अपवाद प्रोग्रामर-स्तर के बगों का प्रतिनिधित्व करते हैं, जैसे कि किसी ऐसे तत्व तक पहुँचने की कोशिश करना जो मौजूद नहीं है।
त्रुटियां उपयोगकर्ता स्तर के मुद्दे हैं जैसे किसी फ़ाइल को लोड करने की कोशिश करना जो मौजूद नहीं है। क्योंकि किसी प्रोग्राम के सामान्य निष्पादन के दौरान त्रुटियों की उम्मीद की जाती है।
उदाहरण:
NSArray *inventory = @[@"Sam",
@"John",
@"Sanju"];
int selectedIndex = 3;
@try {
NSString * name = inventory[selectedIndex];
NSLog(@"The selected Name is: %@", name);
} @catch(NSException *theException) {
NSLog(@"An exception occurred: %@", theException.name);
NSLog(@"Here are some details: %@", theException.reason);
} @finally {
NSLog(@"Executing finally block");
}
उत्पादन:
एक अपवाद हुआ: NSRangeException
यहाँ कुछ विवरण हैं: *** - [__ NSArrayI objectAtIndex:]: सूचकांक 3 सीमा से परे [0] 2]
अंतिम रूप से ब्लॉक करना
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow