如何管理例外

时间:2013-05-20 14:51:03

标签: c# exception-handling

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

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

为了满足我的目的,我需要在集团中写些什么?

4 个答案:

答案 0 :(得分:2)

您需要在FindDocuments“处理” 1

对于您当前的try...catch - 阻止,您只能执行以下操作:

  1. 记录例外
  2. 隐藏例外(不通过调用throw;
  3. FindDocuments停止的地方,您无法重新启动或接听。

      

    [我]需要在catch - 块中写一下以满足我的目的吗?

    FindDocuments中没有任何内容可以满足“忽略”或“跳过”权限例外的目的。您需要编辑该方法。

    <子> 1。默认情况下,您根本不应该处理例外。

答案 1 :(得分:0)

你有两个不错的选择和一个糟糕的选择

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

第三个选项是return null,如果适用,但会使整个异常处理事件无效

答案 2 :(得分: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;
}

答案 3 :(得分:0)

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