Ошибка переноса Rails 4 (невозможно обработать db: мигрировать) SQLite3 :: SQLException: повторяющееся имя столбца

Это имеет смысл, если timeoutTask является произведением Task.Delay, которое я считаю тем, что есть в книге.

Task.WhenAny возвращает Task<Task>, где внутренняя задача является одной из тех, которые вы передали в качестве аргументов. Его можно было бы переписать следующим образом:

Task<Task> anyTask = Task.WhenAny(downloadTask, timeoutTask);
await anyTask;
if (anyTask.Result == timeoutTask)  
  return null;  
return downloadTask.Result; 

В любом случае, поскольку downloadTask уже завершен, между return await downloadTask и return downloadTask.Result существует очень незначительная разница. Именно в этом будет бросок AggregateException, который обертывает любое исходное исключение, как указано в комментариях @KirillShlenskiy. Первый будет просто перебрасывать исходное исключение.

В любом случае, где бы вы ни обрабатывали исключения, вы должны в любом случае проверить наличие AggregateException и его внутренних исключений, чтобы получить причину ошибки.

0
задан Wilson 26 February 2015 в 04:32
поделиться