我有一个连接到ObjectDatasource的Select方法,这个方法可能抛出异常,我不知道如何处理它!
问题在于我没有控制它。呈现页面时,ObjectDatasource直接调用select方法,并直接抛出未处理的异常。
另一方面,如果它有问题,我不想让它返回空集合,因为集合可能是空的而没有问题。
那么,我在哪里可以处理异常?
还有其他选择吗?
答案 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,但这真的取决于:)