如何:使用异常处理范围

上次修改时间: 2010年2月9日

适用范围: SharePoint Foundation 2010

在 SharePoint Online 中提供

下面的示例演示如何通过 ExceptionHandlingScope 类实现异常处理范围 (JavaScript: ExceptionHandlingScope) 及其 StartTry()StartCatch()StartFinally() 方法(在 JavaScript 中对应为 startTry()startCatch()startFinally())。

该示例尝试返回具有指定标题的列表,如果该列表存在,将修改其说明,然后启用文件夹创建。如果该列表不存在,则将创建该列表,然后启用文件夹创建。

using System;
using Microsoft.SharePoint.Client;
namespace Microsoft.SDK.SharePointServices.Samples
{
    class ExampleExceptionHandlingScope
    {        
        // Update the description of specified list and also 
        // enable folder creation.  There's a possibility that the specified 
        // list does not exist.
        static void Main()
        {
            ClientContext clientContext = new ClientContext("http://MyServer/sites/MySiteCollection");            

            ExceptionHandlingScope scope = new ExceptionHandlingScope(clientContext);            

            using (scope.StartScope())
            {
                using (scope.StartTry())
                {
                    List oList = clientContext.Web.Lists.GetByTitle("My List");
                    oList.Description = "In Try Block";
                    oList.Update();
                }

                using (scope.StartCatch())
                {                    
                    // Assume that if there's an exception, it can only be 
                    // because there is no list with the specified title, so
                    // create the list.
                    ListCreationInformation listCreateInfo = new ListCreationInformation();
                    listCreateInfo.Title = "My List";
                    listCreateInfo.Description = "In Catch Block";
                    listCreateInfo.TemplateType = (int)ListTemplateType.Announcements;
                    List oList = clientContext.Web.Lists.Add(listCreateInfo);                    
                }

                using (scope.StartFinally())
                {                    
                    List oList = clientContext.Web.Lists.GetByTitle("My List");
                    oList.EnableFolderCreation = true;
                    oList.Update();                     
                }
            }

            clientContext.ExecuteQuery();            
        }
    }
}
Imports System
Imports Microsoft.SharePoint.Client

Namespace Microsoft.SDK.SharePointServices.Samples

    Class ExampleExceptionHandlingScope

       ' Update the description of specified list and also 
       ' enable folder creation.  There's a possibility that the specified 
       ' list does not exist.
        Shared Sub Main()

            Dim clientContext As New ClientContext("http://MyServer/sites/MySiteCollection")

            Dim scope As New ExceptionHandlingScope(clientContext)

            Using scope.StartScope()

                Using scope.StartTry()

                    Dim oList As List = clientContext.Web.Lists.GetByTitle("My List")
                    oList.Description = "In Try Block"
                    oList.Update()

                End Using

                Using scope.StartCatch()

                   ' Assume that if there's an exception, it can only be 
                   ' because there is no list with the specified title, so
                   ' create the list.
                    Dim listCreateInfo As New ListCreationInformation()
                    listCreateInfo.Title = "My List"
                    listCreateInfo.Description = "In Catch Block"
                    listCreateInfo.TemplateType = CInt(ListTemplateType.Announcements)
                    Dim oList As List = clientContext.Web.Lists.Add(listCreateInfo)

                End Using

                Using scope.StartFinally()

                    Dim oList As List = clientContext.Web.Lists.GetByTitle("My List")
                    oList.EnableFolderCreation = True
                    oList.Update()

                End Using
            End Using

            clientContext.ExecuteQuery()

        End Sub
    End Class
End Namespace

请参阅

概念

如何:使用条件范围

常见编程任务

其他资源

客户端类库

ECMAScript 类库