gpt4 book ai didi

ios - try catch 和 NSSetUncaughtExceptionHandler 的区别

转载 作者:可可西里 更新时间:2023-11-01 04:39:06 34 4
gpt4 key购买 nike

我尝试了两种捕获异常的方法。第一个是 try catch,第二个是 Appdelegate 中的以下代码。

void onUncaughtException(NSException* exception)
{
//save exception details
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSSetUncaughtExceptionHandler(&onUncaughtException);
}

第二种方法的优点是我们不需要在每个方法中都实现 try catch block 。

第一个捕获异常,打印它但不会使应用程序崩溃。但是第二个捕获异常并使应用程序崩溃

有什么方法可以使用第二种方法来捕获异常而不会使应用程序崩溃。

最佳答案

NSSetUncaughtExceptionHandler 设置顶级错误处理函数,您可以在其中执行程序终止前的最后一分钟日志记录。在 onUncaughtException 中,您可以在崩溃前做一些事情,但应用程序最终会崩溃。

@try...@catch...@finally..是 try catch 可能的NSException,如果捕获到,则运行在@catch block 代码中,不管是否catch,代码都会在@finally block 代码中运行。使用@try...@catch... 最终不会导致崩溃,这可能是主要区别。

关于ios - try catch 和 NSSetUncaughtExceptionHandler 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22316683/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com