我不确定我的代码,我想首先保存到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'(该方法在可以设置之前退出) –