如何处理TaskCanceledException?

jmi*_*has 5 exception-handling task xamarin

我有一个 xamarin 应用程序,它使用插件进行媒体访问来选择或拍照。

在我的中继命令中,我有这个:

try
{
    var mediaFile =
        await
            _mediaPicker.SelectPhotoAsync(new CameraMediaStorageOptions());

    using (var memoryStream = new MemoryStream())
    {
        mediaFile.Source.CopyTo(memoryStream);
        ...do image stuff here
    }
}
catch (TaskCanceledException taskCanceled)
{
    Debug.WriteLine(taskCanceled.Message);
}
Run Code Online (Sandbox Code Playgroud)

一般有没有更好的方法来处理任务取消异常?SelectPhotoAsync 不接受取消令牌。空的渔获物在这里好吗?用户取消操作完全没问题。

谢谢。

Ste*_*ary 5

通常,您应该 catchOperationCanceledException而不是TaskCanceledException. 除此之外,您的方法看起来不错;处理异常的正确方法是捕获它。