2012-08-30 23 views
1

长时间潜伏者,第一次海报。如何在NSOperationQueues上自动安装NSExceptionHandlers?

我正在写一个可可应用程序,大量使用NSOperationQueues来管理后台任务。这个应用程序是一个更老的应用程序的重写,它使用手动管理的NSThreads来完成类似的事情。

其中一个要求是我们陷阱/记录所有未捕获的异常以避免应用程序终止。在旧版本的应用程序中,我们将使用NSExceptionHandler API安装所有线程的异常陷阱。现在我们已经从线程中删除了一个抽象级别,但是我没有访问线程对象的权限(实际上,我认为每个操作调用都会改变队列使用的线程)。

什么是推荐/最好的方式来防止我的应用程序在后台操作失败时崩溃?

部署在Mac OS X 10.6上(如果有的话)。

回答

1

我使用解决了这个为自己以下几点:在引导异常编程主题发现

NSInteger mask = (NSLogUncaughtExceptionMask| NSHandleUncaughtExceptionMask | NSLogUncaughtSystemExceptionMask | NSHandleUncaughtSystemExceptionMask | NSLogUncaughtRuntimeErrorMask | NSHandleUncaughtRuntimeErrorMask | NSLogTopLevelExceptionMask | NSHandleTopLevelExceptionMask); 
[[NSExceptionHandler defaultExceptionHandler] setDelegate:[[MyExceptionHandler new] autorelease]];  
[[NSExceptionHandler defaultExceptionHandler] setExceptionHandlingMask:mask]; 

详细信息,部分“控制程序对异常响应”