Dlaczego @try block nie działa? Awaria aplikacji, ale miał zostać złapany przez blok @try.
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
źródło
źródło
Odpowiedzi:
Wszystko działa idealnie :)
Log:
źródło
Teraz znalazłem problem.
Usunięcie
obj_exception_throw
z moich punktów przerwania rozwiązało to. Teraz jest przechwytywany przez@try
blok, a takżeNSSetUncaughtExceptionHandler
poradzi sobie z tym, jeśli@try
brakuje bloku.źródło
Cel-C to nie Java. W Objective-C wyjątki są nazywane. Wyjątki! Nie używaj ich do obsługi błędów. To nie jest ich propozycja. Po prostu sprawdź długość łańcucha przed użyciem characterAtIndex i wszystko jest w porządku ....
źródło