如何:使用异常处理范围
上次修改时间: 2010年2月9日
适用范围: SharePoint Foundation 2010
下面的示例演示如何通过 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