常见的处理异常方式有两种:
1.Web.config
2.Application_Error
这两种就不多说了,网上非常多
但可能是C/S的程序写多了,有时总觉得用着不舒服,因此想把换个自已认为舒服点的方式处理异常。
前提:使用了MasterPage
1.在MasterPage中输入以下代码:
1
internal void ShowError(Exception ex)
2
{
3
Session.Add("Exception", ex);
4
Response.Redirect("Error.aspx");
5
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
2.Error.aspx.cs中输入以下代码:
1
protected void Page_Load(object sender, EventArgs e)
2
{
3
if (Session["Exception"] != null)
4
{
5
Exception ex = Session["Exception"] as Exception;
6![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
if (ex != null)
8
{
9
this.lblErrMsg.Text = ex.Message;
10
}
11
else
12
{
13
this.lblErrMsg.Text = "发生未知错误";
14
}
15![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
Session.Remove("Exception");
17
}
18
else
19
{
20
Response.Redirect("Default.aspx");
21
}
22
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
3.如果你有可能使用MasterPage的嵌套,那么可能需要(如果你不介意使用Master.Master...那么就不需要了)使用这样一个类型,姑且称之为:MasterHelper吧,代码如下:
1
internal static T GetParentMaster<T>(MasterPage master)
2
where T : MasterPage
3
{
4
MasterPage masterPage = null;
5![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
if (master is T)
7
{
8
masterPage = master;
9
}
10![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
if (master != masterPage && master != null && master.Master != null)
12
{
13
masterPage = master.Master;
14![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
while ((masterPage is T) == false)
16
{
17
masterPage = masterPage.Master;
18
}
19
}
20![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
return masterPage as T;
22
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
4.最后,捕获并处理异常:
1
try
2
{
3
throw new Exception("这是一个测试异常");
4
}
5
catch (Exception ex)
6
{
7
MasterHelper.GetMaster<MasterPage_FullName>(this.Master).ShowError(ex);
8
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
这个方法也许很C/S,能用的上的就凑合着用吧:)