0

我需要从外部数据库中提取一些数据。我无法访问所有数据,这就是为什么我需要处理访问异常以不阻止我的应用程序的执行。这是提取文档的功能,例如:

public IDocumentListCollection getDocumentCollection(string ProjectID, SearchQuery query)
        {
            try
            {
                return DocumentService().FindDocuments("", ProjectID, true, true);
            }
            catch(Exception e)
            {
                ...
            }
    }

我需要在 catch 块中写什么来满足我的目的?

4

4 回答 4

2

您需要在1内部“处理”它。FindDocuments

在您当前的try...catch-block 的情况下,您所能做的就是:

  1. 记录异常
  2. 隐藏异常(通过不调用throw;

您无法FindDocuments从中断处重新开始或继续。

[什么] 我需要在catch-block 中写入以满足我的目的?

没有什么能满足“忽略”或“跳过”内部 FindDocuments权限异常的目的。您将需要编辑该方法。

1. 默认情况下,您根本不应该处理异常。

于 2013-05-20T14:55:12.090 回答
0

首先,单击 Visual Studio 中的“调试”菜单,然后选择“异常”并关闭所有通知(“抛出”列)。现在您的应用程序执行不会在调试时终止(当然,如果您的异常已被处理)

于 2013-05-20T14:58:25.743 回答
0

我会试试这个:

public IDocumentListCollection getDocumentCollection(string ProjectID, SearchQuery query)
{
     IDocumentListCollection rtnVal;
     try
     {
        rtnVal = DocumentService().FindDocuments("", ProjectID, true, true);
     }
     catch(Exception e)
     {
         rtnVal = new DocumentListCollection(); //Or any other stubbed version.
     }

     return rtnVal;
}
于 2013-05-20T14:56:51.430 回答
0

你有两个好的选择和一个坏的选择

在 catch 块中返回标准 IDocumentListCollection 或删除“try {} catch {}”并让函数抛出异常(并在更高级别处理它)

第三个选项是返回 null,如果适用,但会使整个异常处理的东西无效

于 2013-05-20T14:55:57.267 回答