博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web项目中创建简单的错误处理页面
阅读量:7053 次
发布时间:2019-06-28

本文共 2055 字,大约阅读时间需要 6 分钟。

当应用程序出现错误的时候,如果没有做错误页面处理的话,会直接输出一些敏感的信息出来,有时候甚至会直接将项目所在的物理路径给显示出来,严重缺乏安全性,并且错误种类繁多,页面风格不一,导致用户体验不好,本文介绍如何在web项目中创建错误页面,从而友好的提示错误信息。

一,创建错误页面error.aspx,前台代码如下(可根据实际需要增加元素):

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="error.aspx.cs" Inherits="MES.Web.error" %>            
system error

 

二,在全局处理文件中的 Application_Error 中加入错误处理的代码,如下:

// 在出现未处理的错误时运行的代码            Exception objErr = Server.GetLastError().GetBaseException();            string sError = "异常页面:" + HttpContext.Current.Request.Url.ToString() + "异常信息:" + objErr.Message + "处理方法:请刷新页面重试或联系系统管理员。";                        //清除之前的异常            Server.ClearError();            //这里如果用Session["ProError"]会出错,所以用 Application["AppError"]            Application["AppError"] = sError;            //这里不能用Response.Redirect            System.Web.HttpContext.Current.Response.Redirect(HttpContext.Current.Request.ApplicationPath + "/error.aspx");

三,在错误页面初始化的时候,输出错误信息,如下:

if (!IsPostBack)            {                if (Application["AppError"] != null)                {                    try                    {                        string msg = Application["AppError"].ToString();                        msg = msg.Replace("\"", "");                        lblMessage1.Text = msg.Substring(0, msg.IndexOf("异常信息"));                        lblMessage2.Text = msg.Substring(msg.IndexOf("异常信息"), msg.IndexOf("处理方法") - msg.IndexOf("异常信息"));                        lblMessage3.Text = msg.Substring(msg.LastIndexOf("处理方法"));                    }                    catch (Exception ex)                    {                        lblMessage1.Text = ex.Message;                    }                }            }

 

以上步骤即可完成错误页面的配置,除此之外,还可通过Web.Config配置错误页面,预览效果如下:

 

转载地址:http://nnlol.baihongyu.com/

你可能感兴趣的文章
Android资源(图片)命名规范
查看>>
java 大文件上传 断点续传 完整版实例 (Socket、IO流)
查看>>
LeetCode: Merge Two Sorted Lists 解题报告
查看>>
海报:Silverlight 1.1
查看>>
[cpp] I/O操作符号返回数值问题
查看>>
Vue -- Mixin
查看>>
使用HeadlessChrome做单页应用SEO
查看>>
[iOS]Core Data浅析二 -- 转换实体(Entity)为模型对象
查看>>
thinkpad 系列恢复F1-F12原始功能,切换ctrl和fn的位置
查看>>
JavaScript算法 ,Python算法,Go算法,java算法,系列之归并排序
查看>>
基于 React 的前端项目开发总结
查看>>
VR进化论|教你搭建通用的WebVR工程
查看>>
如何把要想保存的文章转为 Markdown 格式
查看>>
ThinkPHP3.2.3 关联模型
查看>>
高效的 itertools 模块
查看>>
简单意义上的桶排序
查看>>
解决向github提交代码不用输入帐号密码
查看>>
夏日葵电商:微信分销系统开发运营误区及技巧
查看>>
UXCore 组件单测的一些事儿
查看>>
2018 re:Invent回顾篇:前线开发者眼中AWS的创新版图
查看>>