【问题标题】:How to handle an exception is thrown by Select method of ObjectDatasource?ObjectDatasource的Select方法抛出异常如何处理?
【发布时间】:2011-07-25 21:02:09
【问题描述】:

我有一个连接到 ObjectDatasource 的 Select 方法,这个方法可能会抛出异常,我不知道如何处理它!

问题是我没有控制它。页面渲染后,ObjectDatasource直接调用select方法,直接抛出未处理的异常。

另一方面,如果它有问题,我不想让它返回空集合,因为集合可能是空的而没有问题。

那么,我在哪里可以处理异常?

还有其他选择吗?

【问题讨论】:

    标签: .net asp.net objectdatasource


    【解决方案1】:

    查看 ObjectDataSource 上的 eventargs。应该有一个 e.Exception 和 e.Results,您可以查询选择的成功/错误。

    protected void MyOds_Selected (object sender, ObjectDataSourceStatusEventArgs e)
    {
        if (e.Exception != null)
        {
            // handle exception here.
    ...
        //tell the ObjectDatasource that the exception is handled
        //and don't rethrow it.
        e.ExceptionHandled = true;
    
        }
    }
    

    【讨论】:

      【解决方案2】:

      您应该订阅ObjectDataSource.Selected 事件。

      <asp:ObjectDataSource OnSelected="ObjectDataSourceStatusEventHandler" />
      

      检查@Kirill 提到的事件中的异常,并可能隐藏网格视图并向用户显示一些错误消息。检查这个link。

      【讨论】:

        【解决方案3】:

        如果我理解正确,您的页面有时会在 ObjectDataSource 上调用 Select(),并且此调用有时会因异常而失败。

        现在,您处理此异常的位置在某种程度上取决于您的情况。一般来说,您应该尽早在有意义的地方尝试处理异常,也就是您可以做一些有用的事情来响应错误。例如,对于可能处于可以将用户重定向到错误页面的网站。

        请注意,虽然这个早期有意义的点实际上可能很晚,但如果您将用户重定向到错误页面,它可能与 ui(或页面)层一样高。您可能会在更早的时候尝试捕获异常并重试请求,如果失败,则重新抛出异常

        很抱歉这个 vauge awnser,但这真的取决于 :)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多