在OC用try catch finally捕获异常,把可能出现异常的地方使用,比如访问数组的时候,在用perform系列方法的时候建议加上,可以捕获到找不到方法的异常,不会使程序崩溃。
@try {
NSString *a=(NSString *)[NSNullnull];
if ([aintegerValue]) {
NSLog(@"%@",[NSNullnull]);
}else{
NSLog(@"%@",[NSNullnull]);
}
NSLog(@"@try");
} @catch (NSException *exception) {
NSLog(@"%@",exception);
} @finally {
NSLog(@"@finally");
}
使用友盟之后如果友盟拦截全局异常的开关打开,友盟就能拦截全局的异常。当然,也可以自己收集这些异常信息,方法就是使用NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);
void UncaughtExceptionHandler(NSException *exception) {
/**
* 获取异常崩溃的堆栈信息
*/
NSArray *callStack = [exception callStackSymbols];
NSString *reason = [exception reason];
NSString *name = [exception name];
NSString *content = [NSString stringWithFormat:@"========异常错误报告========\nname:%@\nreason:\n%@\ncallStackSymbols:\n%@",name,reason,[c

在iOS开发中,为了防止程序崩溃并收集异常信息,可以使用OC中的try-catch-finally来捕获异常,如数组访问、perform系列方法等。同时,通过设置NSSetUncaughtExceptionHandler,可以在出现未捕获异常时执行自定义的日志上传操作。如果已使用友盟服务,可以先保存友盟的异常处理函数指针,然后在自定义的异常处理函数中调用它,以实现既利用友盟收集崩溃日志,又将日志发送到自己的服务器。友盟接口提供的block回调虽可用于执行额外操作,但无法直接获取NSException对象进行详细日志收集。
最低0.47元/天 解锁文章
500

被折叠的 条评论
为什么被折叠?



