Во время программирования в Objective-C у меня иногда возникали методы, которые генерировали исключение, которого я не ожидал.
Оглядываясь назад, я понимаю, почему оно вызывает исключение, и часто решение проблемы приводит к улучшению кода.
Однако было бы полезно заранее узнать, какие методы вызовут исключение и при каких обстоятельствах.
Например:
NSString *aString;
aString = @"Less than 42 characters.";
[aString substringToIndex:42];
выдаст исключение, поскольку строка содержит менее 42 символов.
Также это:
NSString *aString = @"This is a string.";
NSString *bString = nil;
aString = [NSString stringByAppendingString:bString];
также завершится аварийно, так как bString равен нулю.
Есть еще примеры?