int main (int argc, const char * argv[]) { <br>
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int a1,b1,c1;
@try {
NSLog(@"Enter numerator: ");
scanf("%i",&a1);
NSLog(@"Enter denomenator: ");
scanf("%i",&b1);
c1 = a1/b1;
NSLog(@"%i",c1);
}
@catch (NSException * e) {
NSLog([e name]);
NSLog([e description]);
NSLog([e reason]);
}
@finally {
NSLog(@"inside finally block");
}
[pool drain];
return 0;
}
Ici, si j'entre la valeur de a1 = 10, b1 = 0, alors il devrait y avoir une exception générée, donc l'instruction dans le bloc catch sera supposée être exécutée. Mais ce n'est pas le cas. Le programme s'est écrasé. Try..Catch ne fonctionne pas dans ce cas ...... On dirait que je fais quelque chose de mal ...try ... catch ne fonctionne pas
Il montre Programme signal reçu: « EXC_ARITHMETIC », mais les déclarations de captures n'exécute pas du tout. – Matrix
Objective-C n'est pas Java. Toutes les erreurs signalées ne sont pas des exceptions. En fait, les exceptions sont une sorte de, euh, d'exception. –