Welcome

首页 / 软件开发 / .NET编程技术 / SharePoint 2010客户端对象模型异常处理

SharePoint 2010客户端对象模型异常处理2010-12-14 博客园 Sunmoonfire本文中我们将讨论在使用客户端对象模型时,如何处理异常。将分别针对 .Net 托管客户端和和ECMAScript进行解释。

为了满足对多个服务器请求进行响应的需要,依托于异常机制,在 SharePoint 2010中引入一个新类ExceptionHandlingScope。这个类包含了一些 方法,用来把代码包装在一个范围内,来对 ClientContext实例中的批处理命令 中发生的异常进行处理。

让我们看一个例子。该例子会查询一个名为NonExistentList的列表,并更新 该列表的描述属性。 当第一次执行此代码,并假设该列表不存在,将会在调用 ExecuteQuery时抛出一个异常。这个异常会被捕获,并其接下来会在catch块中 创建该列表。

.Net 对象模型

以下是在控制台应用程序中的实现:

01 public static void exceptionExample()
02 {
03 ClientContext ctx = new ClientContext ("http://sp2010u/it");
04 ExceptionHandlingScope exScope = new ExceptionHandlingScope(ctx);
05 using (exScope.StartScope())
06 {
07 using (exScope.StartTry())
08 {
09 //获取列表 NonExistingList 并更新其描 述
10 List myList = ctx.Web.Lists.GetByTitle("NonExistingList");
11 myList.Description = "这是一段新的描述 ";
12 myList.Update();
13 }
14 using (exScope.StartCatch())
15 {
16 // 新建一个名为 NonExistingList的列表
17 ListCreationInformation listCreationInfo = new ListCreationInformation();
18 listCreationInfo.Title = "NonExistingList";
19 listCreationInfo.Description = "在 catch块中创建的";
20 listCreationInfo.TemplateType = (int) ListTemplateType.GenericList;
21 List oList = ctx.Web.Lists.Add (listCreationInfo);
22 }
23 using (exScope.StartFinally())
24 {
25 // 更新列表 NonExistingList的描述
26 List myList = ctx.Web.Lists.GetByTitle("NonExistingList");
27 myList.Description = "这是一段在final 块中创建出来的描述";
28 myList.Update();
29 }
30 }
31 ctx.ExecuteQuery();
32 }