我不確定我的代碼,我想首先保存到Blob Azure中,如果它成功,然後將該URL保存到我的數據庫中,我有兩種方法可以執行此操作。第一個使用boolean variable
的名稱爲flag
,如果flag
的值設置爲true,那麼我可以將它保存到我的數據庫中,但我不確定此代碼是否是最佳方法。有沒有可能是由於某種原因,文件沒有上傳到Blob
,甚至如果出現這種情況flag
值設置爲true
:使用 第一種方法boolean flag variable
:嘗試catch塊或布爾標誌?
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'之後立即加入'Add'和'Save',並將其全部封裝在try/catch中? – Rob
如果'UploadFromStream()'拋出一個異常,'flag'的值永遠不會被設置爲'true'(該方法在可以設置之前退出) –