gpt4 book ai didi

iphone - NSSetUncaughtExceptionHandler 无法捕获 iPhone 上的所有错误

转载 作者:行者123 更新时间:2023-12-03 18:31:57 27 4
gpt4 key购买 nike

我正在使用 http://code.google.com/p/google-toolbox-for-mac 中的 GTMStackTrace .

我需要一种方法来测试最终用户在应用程序崩溃时向我发送错误。我知道如何将数据发送到我的网站,但问题是如何捕获所有未处理的错误。

我有这个代码:

void exceptionHandler(NSException *exception) {
NSLog(@"%@", [exception reason]);
NSLog(@"%@", [exception userInfo]);
NSLog(@"%@", GTMStackTraceFromException(exception));

UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"Error unexpected",@"Info: Can't save record")
message:GTMStackTraceFromException(exception) delegate:nil
cancelButtonTitle:NSLocalizedString(@"Ok",@"Button: Ok") otherButtonTitles:nil];
[alert show];
[alert release];
}

int main(int argc, char *argv[]) {
//For crash report..
NSSetUncaughtExceptionHandler(&exceptionHandler);
//Normal code...
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}

但是,该应用程序没有捕获很多错误,例如错误的版本、错误的访问等,并且该应用程序消失了。我有两个问题不清楚为什么会发生,并且最终用户不知道该说什么。

(例如释放两次相同的变量是不被捕获的)

那么,我如何获得所有这些讨厌的错误,以便最终用户简单地向我发送崩溃报告?

最佳答案

EXC_BAD_ACCESS 不会生成异常,而是生成信号 (SIGSEGV)。要捕获它,您需要一个信号处理程序。克里斯托弗·阿特兰 (Christopher Atlan) 写了一个nice explanation如何处理这两种崩溃。请务必阅读 part 1part 2 .

关于iphone - NSSetUncaughtExceptionHandler 无法捕获 iPhone 上的所有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1128539/

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