Warum funktioniert @try block nicht? Die App stürzte ab, sollte aber vom @try-Block abgefangen werden.
NSString* test = [NSString stringWithString:@"ss"];
@try {
[test characterAtIndex:6];
}
@catch (NSException * e) {
NSLog(@"Exception: %@", e);
}
@finally {
NSLog(@"finally");
}
iphone
objective-c
try-catch-finally
nsexception
Alexandru Circus
quelle
quelle
Antworten:
Alle funktionieren perfekt :)
Log:
quelle
Jetzt habe ich das Problem gefunden.
Das Entfernen von
obj_exception_throw
von meinen Haltepunkten löste dieses Problem. Jetzt wird es vom@try
Block abgefangen und wird auchNSSetUncaughtExceptionHandler
behandelt, wenn ein@try
Block fehlt.quelle
Objective-C ist nicht Java. In Objective-C werden Ausnahmen so genannt. Ausnahmen! Verwenden Sie sie nicht zur Fehlerbehandlung. Es ist nicht ihr Vorschlag. Überprüfen Sie einfach die Länge der Zeichenfolge, bevor Sie characterAtIndex verwenden, und alles ist in Ordnung ....
quelle