我的应用在某个点上一直崩溃。它没有告诉我为什么,在以下异常断点发生:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
我不知道是什么导致了崩溃。在左侧,它告诉我是由于objc_exception_throw引起的。我该如何进行调试? 谢谢
我的应用在某个点上一直崩溃。它没有告诉我为什么,在以下异常断点发生:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
我不知道是什么导致了崩溃。在左侧,它告诉我是由于objc_exception_throw引起的。我该如何进行调试? 谢谢
使用 @try
/ @catch
:
@try {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
@catch (NSException *ex)
{
// log ex...
}
或者您可以使用未捕获的异常处理程序:
void uncaughtException(NSException *except)
{
// log Except
NSLog(@"Exception!");
}
NSSetUncaughtExceptionHandler(uncaughtException);
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
最后,您始终可以在objc异常上中断:
Product->debug->create symbolic breakpoint
Symbol: objc_exception_throw
uncaughtException
处理程序。在处理程序中设置断点。当异常触发时,在输出控制台中键入以下内容:po [except callStackSymbols]
这应该会给你更多关于异常来源的细节。
注意: except
是你使用的异常变量的名称。