我有一個Select方法連接到一個ObjectDatasource,這個方法可能會拋出異常,我不知道如何處理它!如何通過ObjectDatasource的Select方法拋出異常?
問題是我沒有控制它。當頁面呈現時,select方法直接由ObjectDatasource調用,並直接拋出未處理的異常。
另一方面,如果它有問題,我不想讓它返回空集合,因爲集合可能是空的而沒有問題。
那麼,我可以在哪裏處理異常?
還有其他的選擇嗎?
我有一個Select方法連接到一個ObjectDatasource,這個方法可能會拋出異常,我不知道如何處理它!如何通過ObjectDatasource的Select方法拋出異常?
問題是我沒有控制它。當頁面呈現時,select方法直接由ObjectDatasource調用,並直接拋出未處理的異常。
另一方面,如果它有問題,我不想讓它返回空集合,因爲集合可能是空的而沒有問題。
那麼,我可以在哪裏處理異常?
還有其他的選擇嗎?
只看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;
}
}
如果我理解正確,你有一個頁面,在某個時候在ObjectDataSource上調用Select()
,並且這個調用有時會失敗併產生異常。
現在你處理這個異常有點依賴於你的場景。一般而言,您應該嘗試處理例外情況,在的最早位置,這就是您可以在處做出某種有用的事情以迴應錯誤。例如,對於一個可能會將用戶重定向到錯誤頁面的網站。
請注意,儘管這個早期的意義可能會很晚,但如果您將用戶重定向到錯誤頁面,它可能會與UI(或頁面)層一樣高。你可能會在某個earier點嘗試捕獲異常和重試請求,如果失敗,重新拋出異常
對不起,vauge awnser,但它實際上取決於:)
您應該訂閱ObjectDataSource.Selected
事件。
<asp:ObjectDataSource OnSelected="ObjectDataSourceStatusEventHandler" />
檢查在這種情況下例外,因爲@Kirill提到,可能隱藏GridView和顯示一些錯誤信息給用戶。檢查這個link。