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

3
我正在使用Azure SDK将流上传到Azure存储块。 我希望使用异步方式进行,因此我使用CloudPageBlob.BeginUploadFromStream。这样做后,我开始考虑在读取流时如果引发异常会发生什么。我找不到任何关于异常是否会上升的信息,因此我可以使用try catch捕获它,或者方法是否调用异步回调,或者会发生什么。

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

原来,当抛出异常时,BeginUploadFromStream()会完成并调用异步回调,但没有异常冒泡到最初调用该方法的位置,因此我无法使用try catch捕获它。同时,我找不到传递给回调函数的IAsyncResult上的任何关于抛出异常的信息。

我应该怎么做才能知道BeginUploadFromStream()没有如预期一样完成?

1个回答

2

我相信当你调用EndUploadFromStream时,你会看到异常。


1
当然,将EndUploadFromStream()放在try catch中正是我所需要的。非常感谢! - Christofer Eliasson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接