Suche…


Syntax

  • NSAssert (Bedingung, fmtMessage, arg1, arg2, ... ) (kursiv gesetzte Argumente sind optional) - Gibt an, dass die Bedingung einen wahren Wert ergibt. Wenn dies nicht der Fall ist, wird durch die Assertion eine Ausnahme ausgelöst (NSAssertionException), wobei fmtMessage mit den angegebenen Argumenten formatiert wird

Durchsetzung

@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)));
}

Diese Zusicherungen stellen sicher, dass Sie einem Dreieck keine falschen Winkel geben, indem Sie eine Ausnahme auslösen. Wenn sie keine Ausnahme als das Dreieck auslösen, kann es sein, dass es sich nicht um ein echtes Dreieck handelt, was zu Fehlern im späteren Code führen kann.

Fehler- und Ausnahmebehandlung mit try catch block

Ausnahmen stellen Programmierfehler dar, wie der Versuch, auf ein nicht vorhandenes Array-Element zuzugreifen.

Fehler sind Probleme auf Benutzerebene, z. B. beim Laden einer Datei, die nicht vorhanden ist. Weil bei der normalen Ausführung eines Programms Fehler erwartet werden.

Beispiel:

    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");
    }

AUSGABE:

Eine Ausnahme ist aufgetreten: NSRangeException

Hier einige Details: *** - [__ NSArrayI objectAtIndex:]: Index 3 jenseits der Grenzen [0 .. 2]

Endlich Block ausführen



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow