private async Task ManageNewSample(Sample sample) { _fakeError++; int value = new Random().Next(1000, 3000); await Task.Delay(value); if (_fakeError % 15 == 0) { throw new SampleException("This is an unmanageable exception, like NPE"); } else if (_fakeError % 5 == 0) { throw new SampleException("This is an \"retry later\" exception"); } else { //everything ok _sampleService.Acknowlegde(sample); } }