Recherche…


Syntaxe

  • NSAssert (condition, fmtMessage, arg1, arg2, ... ) (les arguments en italique sont facultatifs) - Affirme que la condition est évaluée à une valeur vraie. Si ce n'est pas le cas, l'assertion générera une exception (NSAssertionException), avec le format fmtMessage avec les arguments fournis.

Affirmer

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

Ces assertions s'assurent que vous ne donnez pas un triangle d'angles incorrects, en lançant une exception si vous le faites. S'ils ne lançaient pas une exception, le triangle, n'étant pas du tout un triangle, pourrait provoquer des bogues dans un code ultérieur.

Gestion des erreurs et des exceptions avec try catch block

Les exceptions représentent des bogues au niveau du programmeur, comme essayer d'accéder à un élément de tableau qui n'existe pas.

Les erreurs sont des problèmes au niveau de l'utilisateur, comme essayer de charger un fichier qui n'existe pas. Parce que des erreurs sont attendues lors de l'exécution normale d'un programme.

Exemple:

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

SORTIE:

Une exception est survenue: NSRangeException

Voici quelques détails: *** - [__ NSArrayI objectAtIndex:]: index 3 au-delà des limites [0 .. 2]

Exécuter finalement le bloc



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow