我正在使用适用于 .NET Core 的 C# SDK 通过
GetObjectAsync
从存储中获取对象。但是,可能不存在程序请求的此类对象。在这种情况下,GetObjectAsync
会抛出 AmazonS3Exception
,ErrorCode == "NoSuchKey"。
但这会减慢程序速度,因为当对象不存在时这是正常的。
我可以强制 SDK 不抛出异常,而是让我检查响应并确定是否找到对象吗?
SDK 在这里抛出异常通常是预期的工作方式...这是他们声明响应有失败代码的方式。我的建议是将 GetObjectAsync 放入 try/catch 块中,该块捕获任何 AmazonS3Exception 并以您想要的任何方式优雅地处理它。捕获的异常应该包含您想要检查的响应的所有详细信息。
var bar;
try
{
bar = store.GetObjectAsync(foo, foobar, cancellationToken);
}
catch(AmazonS3Exception ex)
{
//handle the exception here
}