Я работаю в среде async (Silverlight) и имею службу Logger, которую я использую для хранения исключений на стороне сервера.Вызов метода async в блоке catch
Рассмотрим этот код:
catch (Exception ex)
{
this.loggerService.LogAsync(ex, "NotesService");
}
Logger выглядит следующим образом:
public interface ILoggerService
{
Task LogAsync(Exception ex, string tag);
}
Если я пишу код, как описано выше (даже Загвоздка в методе асинхронном) я не могу поставить ждать там. Если я оставлю это, я получаю предупреждение, что исполнение продолжается, бла, бла. Это нормально, мне все равно. Мне просто нужно получить сообщение об ошибке.
Могу ли я просто подавить это предупреждение или мне придумать лучший образец для этого?
Что вы хотите делать, если 'LogAsync' терпит неудачу полностью? Возможно, вам понадобится план резервного копирования для наблюдения за неисправной задачей. –
@JonSkeet I code LogAsync таким образом, где я «ем» исключение - это последнее средство .. – katit
@katit: В этом случае вы можете * рассмотреть * изменение типа возврата на 'void'. Это очень * очень редко редко получается, но если вы действительно хотите, чтобы он был полностью «огнем и забыл», он будет работать. –