我尝试了两种捕获异常的方法。第一个是try catch,第二个是Appdelegate中的以下代码。
void onUncaughtException(NSException* exception)
{
//save exception details
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSSetUncaughtExceptionHandler(&onUncaughtException);
}
第二种方法的优点是我们不需要在每种方法中实现try catch块。
第一个捕获异常,打印它,但不会使应用程序崩溃 ..但第二个捕获异常并崩溃应用程序。
有没有办法使用第二种方法来捕获异常而不会使应用程序崩溃。
答案 0 :(得分:5)
NSSetUncaughtExceptionHandler
设置顶级错误处理函数,您可以在程序终止之前执行最后一分钟的日志记录。在onUncaughtException
你可以在崩溃之前做一些事情,但应用程序最终会崩溃。
@try...@catch...@finally..
是尝试捕获可能的NSException,如果catch,则在@catch
块代码中运行,无论catch是否,代码都将在@finally
块代码中运行。使用@try...@catch...
最终不会导致崩溃,这可能是主要区别。