NSSetUncaughtExceptionHandler

发布于 2022-09-01 17:09:58 字数 55 浏览 23 评论 0

请教在iOS中NSSetUncaughtExceptionHandler函数的具体作用和使用方法

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉风有信 2022-09-08 17:09:58

首先,这是你要用法:

void HandleException(NSException *exception)
{
    NSLog(@"%@"[exception callStackSymbols]);
}

@implementation AppDelegate

...

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
....

    NSSetUncaughtExceptionHandler(&HandleException);
    return YES;
}
@end

其次,作用就是捕获OC的异常,然后调用你指定的方法。一般用来记录错误等场景。

顺带提几点
1.只能捕获OC抛出的异常,例如signal就无法捕获,signal异常可以设置signal的handler。具体搜一下signal()

2.自己的NSSetUncaughtExceptionHandler尽量放在didFinishLaunchingWithOptions的最后面,因为现在很多第三方SDK都集成了crash收集,有可能会抢夺你的权限,提一个小经验:太多SDK用NSSetUncaughtExceptionHandler有时会混乱,表现是捕获到的crash没符号表。

希望对你有帮助

为工程师推荐兼职,详情点我头像

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文