Reworking core data error handling

Could you extract methods for the if predicate and the if clause to better express the high-level policy of this method?