私は自分のコードについてはわかりませんが、最初にBlob Azureに保存しておき、それが正常にデータベースに保存されたら、私はこれを行う2つの方法があります。最初の1つはというboolean variable
という名前を使用していますが、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'の直後に' Add'と 'Save'を置いてtry/catchにまとめてみてはどうでしょうか? – Rob
'UploadFromStream()'が例外を投げた場合、 'flag'の値は決して' true'に設定されません(メソッドが設定される前に終了します) –