How to catch exception occured in DAL of ObjectDataSource object?
I have ObjectDataSource and GridView on one of the pages of my asp.net web project.
To initialize ObjectDataSource i use Init event:
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";
}
Somewhere in DAL:
public static List<Customer> GetCustomers(int ma开发者_开发技巧ximumRows, int startRowIndex)
{
try {
... some select to database here...
}
catch (Exception ex)
{
Utils.LogError(ex);
throw ex;
}
}
Now let's imagine that GetCustomers for some reason throws an exception. How could i catch this exception and handle it? I know i can use Application_Error, but i would like to catch this exception somehow on my page and show some friendly message to the user. Is that possible?
Thanks
You can try handling the relevant ObjectDataSource
event.
In your example, the Selected
event, but there are also Inserted
, Updated
and Deleted
events that you handle in the same way.
The events provide an ObjectDataSourceStatusEventArgs
which has the Exception
, and a property ExceptionHandled
that you can set to indicate you have handled the exception (for example, displaying an error message).
There are some samples in MSDN.
精彩评论