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

简介: 当应用程序出现错误的时候,如果没有做错误页面处理的话,会直接输出一些敏感的信息出来,有时候甚至会直接将项目所在的物理路径给显示出来,严重缺乏安全性,并且错误种类繁多,页面风格不一,导致用户体验不好,本文介绍如何在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配置错误页面,预览效果如下:

 

相关文章
|
1月前
|
消息中间件 监控
RabbitMQ的Web管理页面
RabbitMQ的Web管理页面
22 0
|
1月前
|
自然语言处理 Java 数据库连接
掌握JSP页面编程:动态生成Web内容
【4月更文挑战第3天】Java Server Pages (JSP) 是一种用于创建动态Web内容的Java技术,它结合HTML并允许在页面中嵌入Java代码。JSP支持代码片段、表达式语言(EL)和JSTL标签库,简化动态内容生成。当服务器接收到请求时,执行JSP中的Java代码并将结果嵌入HTML返回给客户端。示例展示了如何显示当前日期和时间。JSP可与Servlet、JavaBeans、数据库等结合,用于构建功能丰富的交互式Web应用。
掌握JSP页面编程:动态生成Web内容
|
2月前
|
编解码 前端开发 Java
大华相机接入web页面实现人脸识别
大华相机接入web页面实现人脸识别
19 0
|
2月前
|
机器学习/深度学习 人工智能 前端开发
机器学习PAI常见问题之web ui 项目启动后页面打不开如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
1天前
|
Go
golang学习3,golang 项目中配置gin的web框架
golang学习3,golang 项目中配置gin的web框架
|
13天前
|
机器学习/深度学习 前端开发 数据可视化
数据分析web可视化神器---streamlit框架,无需懂前端也能搭建出精美的web网站页面
数据分析web可视化神器---streamlit框架,无需懂前端也能搭建出精美的web网站页面
|
27天前
|
开发框架 安全 搜索推荐
如何使用Python Flask发布web页面至公网并实现远程访问【内网穿透】
如何使用Python Flask发布web页面至公网并实现远程访问【内网穿透】
|
1月前
|
Java Maven Spring
【IntelliJ IDEA】使用Maven方式构建Spring Boot Web 项目(超详细)2
【IntelliJ IDEA】使用Maven方式构建Spring Boot Web 项目(超详细)
26 2
|
1月前
|
Java Maven 开发工具
【IntelliJ IDEA】使用Maven方式构建Spring Boot Web 项目(超详细)1
【IntelliJ IDEA】使用Maven方式构建Spring Boot Web 项目(超详细)
27 2
|
2月前
|
前端开发 JavaScript 数据管理
描述一个使用Python开发Web应用程序的实际项目经验,包括所使用的框架和技术栈。
使用Flask开发Web应用,结合SQLite、Flask-SQLAlchemy进行数据管理,HTML/CSS/JS(Bootstrap和jQuery)构建前端。通过Flask路由处理用户请求,模块化代码提高可维护性。unittest进行测试,开发阶段用内置服务器,生产环境可选WSGI服务器或容器化部署。实现了用户注册登录和数据管理功能,展示Python Web开发的灵活性和效率。
16 4