应用程序崩溃.... objc_exception_throw

0xS*_*ina 7 xcode cocoa-touch objective-c ios

我的应用程序一度崩溃.它没有告诉我为什么,异常断点发生在

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
Run Code Online (Sandbox Code Playgroud)

所以我不知道是什么导致了崩溃.在左侧,它告诉我这是因为objc_expcetion_throw.我该怎么调试呢?谢谢

Jos*_*ase 6

在这种情况下,我将创建一个断点来打破所有异常.如果您只是单击断点选项卡上的添加按钮,则这是创建的默认断点.

有了这个断点,XCode将停在异常点,我会看到它与堆栈一起发生的代码行.

我会发布一个这样的图像,但我没有足够的代表!


Ric*_*III 5

使用@try/ @catch:

@try {
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
@catch (NSException *ex)
{
    // log ex...
}
Run Code Online (Sandbox Code Playgroud)

或者您可以使用未捕获的异常处理程序:

void uncaughtException(NSException *except)
{
    // log Except
    NSLog(@"Exception!");
}

NSSetUncaughtExceptionHandler(uncaughtException);
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
Run Code Online (Sandbox Code Playgroud)

最后,你总是可以打破objc异常:

Product->debug->create symbolic breakpoint
Symbol: objc_exception_throw
Run Code Online (Sandbox Code Playgroud)