如何捕获ObjectDataSource对象的DAL中发生的异常?

时间:2010-09-01 15:25:42

标签: c# asp.net

我的asp.net web项目的一个页面上有ObjectDataSource和GridView。

要初始化ObjectDataSource,我使用Init事件:

   protected void ObjectDataSource1_Init(object sender, EventArgs e)
    {
            ObjectDataSource1.EnablePaging = true;
            ObjectDataSource1.TypeName = "CustomerDataSource";
            ObjectDataSource1.DataObjectTypeName = "Customer";
            ObjectDataSource1.SelectMethod = "GetCustomers";
            ObjectDataSource1.UpdateMethod = "Update";
            ObjectDataSource1.SelectCountMethod = "GetCustomersCount";
            ObjectDataSource1.MaximumRowsParameterName = "maximumRows";
            ObjectDataSource1.StartRowIndexParameterName = "startRowIndex";

      }

在DAL的某个地方:

public static List<Customer> GetCustomers(int maximumRows, int startRowIndex)
{
   try {
         ... some select to database here...
       }
       catch (Exception ex)
       {
         Utils.LogError(ex);
         throw ex;
       }
}

现在让我们假设GetCustomers出于某种原因抛出异常。我怎么能抓住这个例外并处理它?我知道我可以使用Application_Error,但我想在我的页面上以某种方式捕获此异常并向用户显示一些友好消息。这可能吗?

由于

1 个答案:

答案 0 :(得分:3)

您可以尝试处理相关的ObjectDataSource事件。

在您的示例中,Selected事件,但您也会以相同的方式处理InsertedUpdatedDeleted个事件。

事件提供ObjectDataSourceStatusEventArgs,其Exception和属性ExceptionHandled可以设置为表示您已处理异常(例如,显示错误消息)。

MSDN中有一些示例。