如何处理从CloudPageBlob.BeginUploadFromStream中抛出的异常

时间:2012-10-19 15:07:16

标签: c# .net azure azure-storage-blobs azure-sdk-.net

我正在使用Azure SDK将流上传到Azure存储Blob。我想做异步,所以我使用CloudPageBlob.BeginUploadFromStream。这样做,我开始考虑如果在读取流时抛出异常会发生什么。我找不到关于异常是否会冒出来的任何信息,所以我可以用try catch来捕获它,或者如果方法会调用异步回调,或者会发生什么。

为了尝试一下,我将我的流包装在一个继承Stream的类中,构造函数将我的流作为参数,并将其保存为私有变量。然后,每个继承的方法只在私有流上调用它的相等。然而,在Read()中,我抛出异常,看看在读取流时出现问题会发生什么。然后我将我的streamwrapper实例传递给BeginUploadFromStream(),而不是实际的流。

事实证明,当抛出异常时,BeginUploadFromStream()完成并调用异步回调,并且没有异常冒泡到第一次调用该方法的位置,所以我无法通过try catch捕获它。同时,我找不到传递给回调的IAsyncResult的任何信息,抛出异常。

如果BeginUploadFromStream()没有按预期完成,我该怎么办才能采取行动?

1 个答案:

答案 0 :(得分:2)

我相信当你致电EndUploadFromStream时,你会看到异常。