Ricerca…


Sintassi

  • NSAssert (condition, fmtMessage, arg1, arg2, ... ) (gli argomenti in corsivo sono facoltativi) - Asserisce che la condizione restituisce un valore true. In caso contrario, l'asserzione genererà un'eccezione (NSAssertionException), con fmtMessage formattato con gli argomenti forniti

affermare

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

Queste asserzioni assicurano che non si dia un triangolo ad angoli sbagliati, lanciando un'eccezione se lo si fa. Se non hanno lanciato un'eccezione rispetto al triangolo, non essendo un vero triangolo, potrebbero causare alcuni bug nel codice successivo.

Gestione errori ed eccezioni con blocco catch try

Le eccezioni rappresentano bug a livello di programmatore come provare ad accedere a un elemento di matrice che non esiste.

Gli errori sono problemi a livello utente come provare a caricare un file che non esiste. Perché sono previsti errori durante la normale esecuzione di un programma.

Esempio:

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

PRODUZIONE:

Si è verificata un'eccezione: NSRangeException

Ecco alcuni dettagli: *** - [__ NSArrayI objectAtIndex:]: index 3 oltre i limiti [0 .. 2]

Eseguendo finalmente il blocco



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow