Web项目中创建简单的错误处理页面

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

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

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .style1
        {
            width: 74px;
        }
        .style2
        {
            width: 79px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div align="center">
        <table style="height: 85px; width: 657px;">
            <tr>
                <td>
                    <img alt="system error" src="Images/errorpage.jpg" />
                </td>
            </tr>
            <tr>
                <td class="style2">
                    <asp:Label ID="lblMessage1" runat="server" Font-Names="微软雅黑" Text=""></asp:Label>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    <asp:Label ID="lblMessage2" runat="server" Font-Names="微软雅黑" Text=""></asp:Label>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    <asp:Label ID="lblMessage3" runat="server" Font-Names="微软雅黑" Text=""></asp:Label>
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

 

二,在全局处理文件中的 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配置错误页面,预览效果如下:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
创建一个web项目需要经过多个步骤,每一步都需要认真思考和实施,下面就给大家分享一下我对于创建web项目的教程。 步骤一:明确项目目标与需求 首先,我们需要明确自己创建的这个项目的目标和需求。你需要问自己一些问题,比如这个项目的主要目的是什么,它的受众是谁,它需要达到什么效果和功能,等等。在明确之后,我们可以开始进行下一步。 步骤二:选择适合的技术栈 根据项目的目标和需求,我们需要选择适合的技术栈。比如说,如果我们需要开发一个论坛网站,我们可以选择用PHP和MySQL来实现,如果我们要开发一个在线商城,我们可以选择使用Java和MySQL来实现。选择适合的技术栈是非常重要的,因为它会影响到项目的性能和开发效率。 步骤三:制定项目计划和时间表 在选择了技术栈之后,我们需要制定一个详细的项目计划和时间表。这个计划包括了所有的任务清单、里程碑、每个任务的时间估算等等。它将成为我们整个项目开发的基础,并确保我们按时交付项目。 步骤四:架构设计和数据库设计 在确定了技术栈和计划之后,我们需要进行架构设计和数据库设计。我们需要确认项目的结构、组件和它们之间的关系。在数据库设计,我们需要确认数据表的结构以及表之间的关系。这两个步骤的目的是为了确保所有组件的功能能够协同工作,并且数据可以高效地存储和检索。 步骤五:前后端代码实现 在完成了架构设计和数据库设计之后,我们可以开始实现前后端的代码了。 在前端代码的实现,我们使用HTML、CSS、JavaScript等技术来实现UI界面,让用户能够在页面进行操作。 在后端代码的实现,我们使用所选的技术栈来实现服务端逻辑,包括处理HTTP请求、响应和数据持久化等。 步骤六:测试和发布 最后,我们需要进行测试和发布。我们需要测试所有的组件,确保它们都能够正常协同工作。在测试的过程,我们要模拟实际用户行为,并处理所有可能出现的异常。当测试通过后,我们就可以发布项目了。 总之,创建一个web项目是需要经过多个步骤的,每一步都需要认真实施。只有在不存在漏洞或错误的情况下,我们才能成功地创建一个完整的web项目

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值