【发布时间】:2014-04-23 11:09:29
【问题描述】:
我正在尝试为我的应用程序编写一个全局异常处理例程。这个想法是它将异常临时存储在内存中并最终将其报告给服务器,而不是打扰用户。
我想收集尽可能多的信息,因此异常中的 userInfo 字段似乎是存储它的地方。然后我可以简单地重新抛出异常,或者如下例所示,直接将其报告给全局异常处理程序并继续。
@catch (NSException *e) {
NSLog(@"Got exception parsing XML stack %@", stack);
[e setValue:stack forKey:@"stack"];
[__zmsGlobals exception:e context:@"Parsing data"];
[self cleanupAfterScan];
[self report:[NSError errorWithDomain:@"zaomengshe.com" code:104 userInfo:e.userInfo] selector:failureSelector];
}
这只是关于如何在 userInfo 字段中设置值的猜测。 NSException 似乎有一个 setValue 方法,但它不起作用。它抛出“此类不符合键堆栈的键值编码。”
那么最好的方法是什么?我必须从头开始构建一个新的 NSException 吗?
【问题讨论】:
标签: objective-c cocoa nsexception