0
我遇到的情況,我加載控制在母版:用戶控件異常處理
Control mycontrol = LoadControl("~/mycontrol");
aspholder.Controls.Add(MyControl);
現在我需要知道,如果有可能捕獲異常(甚至不試試statment趕上(即在用戶控件拋出從母版頁
我遇到的情況,我加載控制在母版:用戶控件異常處理
Control mycontrol = LoadControl("~/mycontrol");
aspholder.Controls.Add(MyControl);
現在我需要知道,如果有可能捕獲異常(甚至不試試statment趕上(即在用戶控件拋出從母版頁
您可以處理未處理的異常上TemplateControl.Error事件母版,頁,用戶控件他們都繼承了它,所以你可以寫:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class MyMasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Page.Error += Page_Error;
}
private void Page_Error(object sender, EventArgs e)
{
var ex = Server.GetLastError();
// do something with exception
Debug.WriteLine(ex);
}
}
}
然後,如果在Page \ UserControl邏輯中發生未處理的異常,那麼它將調用Error事件,這將調用此Page_Error方法。
關於它的MSDN文章 - http://msdn.microsoft.com/en-us/library/ed577840(v=vs.100).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1
不確定是否遵循。嘗試catch塊應放置在最有可能發生異常的地方。所以即使在用戶控件中,如果它正在執行除了在視圖/ UI上呈現數據之外的事情。你可以在你的代碼片段中放置一個try catch塊,但是不太合理 –