ObjectDatasource的Select方法抛出如何处理异常?

时间:2011-07-25 21:02:10

标签: .net asp.net objectdatasource

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

问题在于我没有控制它。呈现页面时,ObjectDatasource直接调用select方法,并直接抛出未处理的异常。

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

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

还有其他选择吗?

3 个答案:

答案 0 :(得分:9)

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

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;

    }
}

答案 1 :(得分:2)

您应该订阅ObjectDataSource.Selected活动。

<asp:ObjectDataSource OnSelected="ObjectDataSourceStatusEventHandler" />

检查该事件中的异常,因为@Kirill提到并可能隐藏gridview并向用户显示一些错误消息。请检查此link

答案 2 :(得分:-1)

如果我理解正确,你会有一个页面在某个时刻调用ObjectDataSource上的Select(),并且这个调用有时会因异常而失败。

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

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

对不起vauge awnser,但这真的取决于:)