Я не уверен в моем коде, я хочу сначала сохранить в Blob Azure, и если он был успешным, сохраните этот url в моей базе данных, у меня есть два способа сделать это. Первый с использованием boolean variable
с именем flag
, если значение flag
имеет значение true, то я могу сохранить его в моей базе данных, но я не уверен, что этот код является лучшим подходом. Возможно ли, что по какой-то причине файл не загружается в Blob
и даже если это произойдет flag
установлено значение true
: Первый подход с использованием boolean flag variable
:попробуйте поймать блок или булевский флаг?
using (Stream fileStream = file.InputStream)
{
blockBlob.UploadFromStream(fileStream);
flag = true;
}
if (flag == true)
{
Urls.Add(blockBlob.SnapshotQualifiedUri.ToString());
db.Save();
}
Или должен быть лучший подход использовать try catch
блок?
try
{
using (Stream fileStream = file.InputStream)
{
blockBlob.UploadFromStream(fileStream);
}
}
catch(Exception)
{
//do something
}
Urls.Add(blockBlob.SnapshotQualifiedUri.ToString());
db.Save();
Пожалуйста, объясните ваш ответ различия между каждым подходом, лично я считаю, что try catch
должен быть лучшим подходом, но я хочу, чтобы подтвердить здесь :)
'flag' всегда будет иметь значение true, если только оно не выдает исключение (которое вы предполагаете, что оно будет выполнено, если оно не выполнено). Поэтому мне кажется, что флаг ничего не сделает, так как следующий код не будет выполняться в любом случае. Почему бы не поставить «Добавить» и «Сохранить» сразу после «UploadFromStream» и обернуть все это в try/catch? – Rob
Если 'UploadFromStream()' выбрало исключение, значение 'flag' никогда не будет установлено в' true' (метод выходит до его установки) –