Я хочу, чтобы все ошибки и исключения были удалены мной и добавили дополнительную информацию (например, пользователь), чтобы сохранить ее. Теперь, моя мысль - обернуть блок try-catch в файле didFinishLaunchingWithOptions. В блоке catch я регистрирую исключение и дополнительную информацию, а затем повторно загружаю его. Правильно ли это реализовать? Спасибо заранее.Catch crashes and exceptions in iOS
Обновление для кода:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
@try {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.loginViewController = [[LoginViewController alloc] init];
self.window.rootViewController = self.loginViewController;
[self.window makeKeyAndVisible];
}
@catch (NSException *exception) {
// Save the exception description and additional info here
...
// And re-throw it.
[exception raise];
}
return YES;
}
Дальнейшее обновление: Я попытался выше код сам, и он не может поймать исключения произошло в других местах. Я знаю, что в Google Analytics для iOS SDK есть свойство sendUncaughtExceptions, чтобы делать подобное. Я думаю, что если я реализую аналогичную функциональность, я могу обеспечить большую гибкость, так как у нас есть собственный сервер ошибок (я загружу журнал ошибок на наш сервер). Любое предложение ценят.
Решение: Наконец, я получил решение из этого блога: http://www.cocoawithlove.com/2010/05/handling-unhandled-exceptions-and.html
Какой тип «дополнительная информация» Вы хотите войти? –
@Bhargavi: Я хочу отслеживать конкретное устройство и информацию о пользователе (например, идентификатор устройства, адрес электронной почты и т. Д.). – yibuyiqu
@ShivanRaptor: Я не спрашиваю, как использовать блок try-catch. Интересно, ставил ли я try-catch в didFinishLaunchingWithOptions и обертывал все предыдущие строки, делает ли он все возможные сбои даже запускать потоки в другом месте? – yibuyiqu