ASP.NET 歪博2.0
得意时淡然,失意时泰然。
博客园
首页
新文章
新随笔
订阅
管理
posts - 66, comments - 24, trackbacks - 9
ASP.NET定制简单的错误处理页面
通常web应用程序在发布后,为了给用户一个友好界面和使用体验,都会在错误发生时跳转至一个自定义的错误页面,而不是asp.net向用户暴露出来的详细的异常列表。
简单的错误处理页面可以通过web.config来设置
1
<
customErrors
mode
="RemoteOnly"
defaultRedirect
="GenericErrorPage.htm"
>
2
<
error
statusCode
="403"
redirect
="NoAccess.htm"
/>
3
<
error
statusCode
="404"
redirect
="FileNotFound.htm"
/>
4
</
customErrors
>
如果想通过编程的方式来呈现错误原因,可以通过Page_Error事件来做这件事。
另一种方式则可以通过Global.asax来实现,我觉得这种方式较为方便,另外如果能结合一个单独的更加友好的页面,则看来起更舒服一些:
Global.asax(如果需要,可以记录错误日志)
1
void
Application_Error(
object
sender, EventArgs e)
2
{
3
Exception objErr
=
Server.GetLastError().GetBaseException();
4
string
error
=
"
发生异常页:
"
+
Request.Url.ToString()
+
"
<br>
"
;
5
error
+=
"
异常信息:
"
+
objErr.Message
+
"
<br>
"
;
6
Server.ClearError();
7
Application[
"
error
"
]
=
error;
8
Response.Redirect(
"
~/ErrorPage/ErrorPage.aspx
"
);
9
}
10
ErrorPage.aspx
11
12
protected
void
Page_Load(
object
sender, EventArgs e)
13
{
14
ErrorMessageLabel.Text
=
Application[
"
error
"
].ToString();
15
}
当最终用户使用应用程序的时候,他们可能不想知道错误的原因,这个时候,我们可以通过复选框来实现,是否呈现错误的原因。可将Label放在一个div中,然后用复选框来决定是否呈现div
1
<
script language
=
"
javascript
"
type
=
"
text/javascript
"
>
2
<!--
3
function
CheckError_onclick()
{
4
var
chk
=
document.getElementById(
"
CheckError
"
);
5
var
divError
=
document.getElementById(
"
errorMsg
"
);
6
if
(chk.checked)
7
{
8
divError.style.display
=
"
inline
"
;
9
}
10
else
11
{
12
divError.style.display
=
"
none
"
;
13
}
14
}
15
16
//
-->
17
</
script
>
我们可以对errorpage这页做一些更亲切的
设计
,让人看起来更舒服些。
posted on 2007-05-16 15:57
Jerry.liu
阅读(257)
评论(2)
编辑
收藏
所属分类:
asp.net
FeedBack:
#1楼
2007-05-16 19:26 |
随心所欲
用户可以选择是否看,这只是第一步。
就算是显示错误信息,也是分多个层次的:有的给开发者看,有的给维护者看,有的给使用者看。
回复
引用
查看
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
闪存
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2007-09-25 11:46 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索
相关文章:
学习asp.net比较完整的流程
ASP.Net中控件的EnableViewState属性
电脑故障处理经验一则
电脑故障处理小经验—IE无法打开链接的处理方法
Asp.net ajax 版本问题
asp.net ajax js类库VSjquery
asp.net 连接 Access
建议博问中增加ASP.NET MVC分类
相关链接:
所属分类的其他文章:
AspNetPager分页控件--使用方法 2
AspNetPager分页控件--使用方法 1
分析ASP.NET服务器控件开发-控件生命周期
用ObjectDataSource实现自定义分页的心得总结
DataTable操作中的性能问题
ASP.NET的 Session 详解4
ASP.NET的 Session 详解3
ASP.NET的 Session 详解2
ASP.NET的 Session 详解1
ASP.NET的 MVC框架
最新IT新闻:
微型博客Twitter取消IM服务 称其ROI差
用手机聊Gtalk的方法以及应用总结
Google开拓美政府机构市场 微软业务受冲击
消息称苹果正在开发iTunes网络电视
微软周一开电话会议 预计将发布Silverlight2.0
<
2007年5月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(2)
给我留言
查看留言
随笔分类
asp.net(59)
Java(4)
vc.net(2)
随笔档案
2007年5月 (66)
最新评论
阅读排行榜
1. ASP.NET 2.0中保证应用程序的安全(1670)
2. ASP.NET的 Session 详解1(1200)
3. AspNetPager分页控件--使用方法 1 (1169)
4. ASP.NET的 Session 详解4 (964)
5. ASP.NET中上传文件到数据库(920)
评论排行榜
1. 彻底放弃IIS让Apache也支持ASP.NET(7)
2. ASP.NET中上传文件到数据库(3)
3. ASP.NET 2.0防止同一用户同时登陆(2)
4. ASP.NET定制简单的错误处理页面(2)
5. ASP.NET 2.0发送电子邮件中存在的问题(2)