当Catch块中出现异常时,继续执行ForEach块中的下一个blob

本文关键字:ForEach 执行 下一个 继续 blob Catch 异常 | 更新日期: 2023-09-27 18:12:07

我在Azure存储容器中有许多xml。我编写了一些代码来从这些xml中去掉不必要的数据元素。为了列出不同文件夹结构中的所有xml,我使用

var blobs = container.ListBlobs(prefix: <Root Location of Blobs>, useFlatBlobListing: true);
 foreach (CloudBlockBlob blob in blobs)

和解析xml我使用Linq.

我面临的问题是有一些xml缺少适当的格式或一些xml没有结束文字。我想捕获异常并从处理中跳过该xml文件,继续处理下一个xml文件。如何使用Try catch块做到这一点?

我得到的例外是System.Xml.XmlException

当Catch块中出现异常时,继续执行ForEach块中的下一个blob

Try

    foreach (CloudBlockBlob blob in blobs){               
             bool isError = false;   
            try   
            {                          
               // do your code here;   
            }catch(Exception ex){
                isError = true;
            }
           if(isError) continue;
        }
更新:

void Main()
    {
        string[] list = new string[]{"bob", "jack", "tom", "sparrow"};
        foreach(string li in list){
            try{
                if(String.Equals(li, "tom")){
                    throw new Exception("Fault");
                }
                Debug.WriteLine(li);
            }catch(Exception ex){
                Debug.WriteLine(ex.Message);
                continue;
            }
        }
    }

打印:

bob
jack
Fault
sparrow