How to: Use Exception Handling Scope
Applies to: SharePoint Foundation 2010
Available in SharePoint Online
The following example shows how to implement exception handling scope through the ExceptionHandlingScope class (JavaScript: ExceptionHandlingScope), and its StartTry(), StartCatch(), and StartFinally() methods (in JavaScript, startTry(), startCatch(), and startFinally()).
The example tries to return a list with a specified title and, if the list exists, modifies its description and then enables folder creation. If the list does not exist, the example creates the list and then enables folder creation.
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
See Also
Concepts
Common Programming Tasks in the Managed Client Object Model