- (ObjectToHome*)doWorkWithTasks:(NSMutableArray*)tasks
{
@try
{
[(Task*)[tasks lastObject] done];
[tasks removeLastObject];
return [tasks count] > 0 ? [self doWorkWithTasks: tasks] : self ;
}
@catch (NSException * exception)
{
[tasks insertObject: [Task taskWithException: exception] atIndex:0];
[self doWorkWithTasks: tasks];
}
@finally
{}
}