`
ybhuxiao
  • 浏览: 193255 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自定义错误页,并捕获异常到数据库

    博客分类:
  • java
阅读更多
web.xml中添加这一段,处理404等状态信息,注意是error-code
<error-page>
    <error-code>400</error-code>
    <location>/_error.htm</location>
</error-page>
<error-page>
    <error-code>401</error-code>
    <location>/_error.htm</location>
</error-page>
<error-page>
    <error-code>403</error-code>
    <location>/_error.htm</location>
</error-page>
<error-page>
    <error-code>404</error-code>
    <location>/_error.htm</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/_error.htm</location>
</error-page>
<error-page>
    <error-code>503</error-code>
    <location>/_error.htm</location>
</error-page>
<error-page>
    <error-code>505</error-code>
    <location>/_error.htm</location>
</error-page>


web.xml中添加这一段,处理异常信息,注意是exception-type
<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/_error.jsp</location>
</error-page>


这样以来,出现404等错误的时候,就转到_error.htm页面了,出现异常则转到_error.jsp页面。

没搞明白的是,404里面,如果往jsp页面转的话,转不了,只能写成htm后缀的,这应该不是问题,有时间再处理。

在_error.jsp页面中,截取exception并保存到数据库:

			System.out.println("----------------------------------------------------------");
			System.out.println("记录异常:");
			System.out.println("----------------------------------------------------------");
			StringBuffer str = new StringBuffer();
			str.append("<div>系统执行发生错误,信息描述如下:</div>");
			str.append("<div>status:" + pageContext.getErrorData().getStatusCode() + "</div>");
			str.append("<div>from page:" + pageContext.getErrorData().getRequestURI() + "</div>");
			str.append("<div>exception:" + pageContext.getErrorData().getThrowable() + "</div>");
			str.append("<div>");
			str.append("	Trace:");
			str.append("<hr />");
			
			StackTraceElement[] stackTraceElement = pageContext.getException().getStackTrace();
			for(StackTraceElement stack : stackTraceElement){
				str.append("&nbsp;&nbsp;&nbsp;&nbsp;" + stack + "<br />");
			}
			str.append("</div>");
			Dao.getCommonFacade().update("insert into gg_exception (id,content,fbsj) values ('"+ StringUtil.getUUID() +"','"+ str.toString() +"',"+ DateUtil.getCurrentDate14() +")");
			


至于_error.jsp里面显示的信息,就随自己写了




0
0
分享到:
评论

相关推荐

    xser_exception_handler -- xser php fr v0.1 自定义捕获异常信息

    在"错误-异常 重定向页面.mht"这个文件中,可能包含了框架在遇到异常时如何重定向用户到一个定制的错误页面的设计。这通常是为了提供一个美观且不包含错误详细信息的界面,以避免用户看到可能导致安全问题的错误堆栈...

    捕获异常并写入日志的一个类

    本文将详细介绍如何使用自定义类来捕获异常并将其记录到日志,以提高程序的健壮性和可维护性。标题中的"捕获异常并写入日志的一个类"正是指这个功能。 异常(Exception)是C#中表示程序运行时错误的对象。当程序...

    最完整的《自定义分页》源码

    7. **错误处理和异常捕获**:源码中应包含适当的错误处理机制,防止数据库连接失败或查询错误时程序崩溃。 8. **代码组织和架构**:良好的源码结构和设计模式的应用,如MVC(模型-视图-控制器)或三层架构,可以...

    c#数据库注册

    在处理数据库操作时,应使用try-catch块捕获可能出现的异常,例如数据库连接失败、SQL注入攻击等,并向用户提供清晰的错误信息。 综上所述,“C#数据库注册”涵盖了数据库连接、用户注册、身份验证、邮件服务和...

    Laravel5.1自定义500错误页面示例

    接下来需要创建自定义错误页面的视图文件。这个文件应该放在`resources/views/errors`目录下,并命名为`default.blade.php`。在这个文件中,可以使用Laravel的Blade模板引擎编写HTML代码来展示错误信息。例如: ```...

    大型数据库系统技术课程 4-1-数据库异常处理 共87页.ppt

    `when others then`部分捕获所有其他异常,记录错误并可能执行回滚操作以防止数据不一致。 总之,数据库异常处理是数据库系统中不可或缺的一部分,它能够帮助开发者有效地管理运行时错误,提高程序的稳定性和可靠性...

    web端显示MySQL数据库中内容

    同时,添加适当的异常处理代码,捕获并处理可能出现的错误。 6. **部署与运行**:将项目打包成WAR文件,部署到支持JSP和Servlet的Web服务器(如Tomcat),通过浏览器访问指定URL,即可看到从MySQL数据库中获取并...

    MVC自定义权限控制示例代码

    - 当授权失败时,可以捕获异常并记录详细的日志,这对于调试和审计非常重要。 - 同时,可以提供友好的错误页面,告知用户为何被拒绝访问。 5. **测试和调试**: - 在MvcApplication_AuthorizeAttribute示例中,...

    (源码)基于Spring Boot和MyBatis的社区问答系统.zip

    4. 全局异常处理系统提供了全局异常处理机制,能够捕获并处理各种异常,并返回友好的错误页面。 5. 自定义错误页面根据不同的HTTP状态码,系统能够返回不同的错误页面,提供更好的用户体验。 6. 分页功能系统支持...

    C#页面统一错误处理

    #### web.config中的自定义错误配置 在C# Web应用中,`web.config`文件扮演着核心配置的角色,其中的`&lt;customErrors&gt;`元素用于定义如何处理HTTP错误状态码。通过设置`&lt;customErrors mode="RemoteOnly"&gt;`,可以确保...

    实现Gridview的自定义绑定与编辑

    例如,在编辑操作中,可以使用` Try-Catch`块捕获异常,确保数据安全;在数据验证时,可以利用ASP.NET的验证控件,确保用户输入符合预期;为了提升用户体验,可以使用AJAX技术实现局部刷新,使操作更加流畅。 在...

    使用zTree框架完成树形框架链接到数据库实现增删改

    8. **错误处理**:在与服务器交互的过程中,应捕获可能出现的错误,如网络问题、服务器异常等,给出适当的错误提示。 在项目`peTreeDemo2`中,很可能包含了实现上述功能的示例代码,包括HTML页面、CSS样式、...

    自定义控件分页的使用

    7. **异常处理**:在加载过程中可能会遇到网络错误、服务器错误等问题,需要捕获并适当地处理这些异常,提供友好的用户反馈。 8. **性能优化**:使用RecycleView或ListView等高效的列表控件,避免内存泄漏和冗余...

    JSP与数据库综合应用.doc

    如果在连接数据库或执行SQL时出现异常,GetRecord.tag会捕获并显示错误信息。 这个实验涵盖了JSP页面与自定义标签的交互、JDBC基础操作(如连接、查询、关闭连接)、以及结果集的处理。它不仅教授了基本的数据库...

    基于PHP面向对象的自定义MVC框架高级项目开发高级视频教程

    - 可以使用try-catch语句来捕获异常,并提供友好的错误页面或者日志记录功能。 5. **安全性考虑** - 实现CSRF保护、XSS过滤等安全措施,确保用户数据的安全。 - 对敏感操作进行权限验证,限制非法访问。 6. **...

    ASP.NET 2.0数据库入门经典

    8. **Error Handling**:ASP.NET 2.0提供了错误处理机制,包括Global.asax文件中的Application_Error事件,以及自定义错误页面,帮助开发者捕获和处理数据库操作中可能出现的异常。 通过学习"ASP.NET 2.0数据库入门...

    asp.net错误处理机制

    // 实现记录异常信息到数据库或日志文件 // 通知网站管理员 Response.Write("Error: " + ex.Message); Server.ClearError(); // 清除错误 } ``` 通过这种方式,可以集中管理所有未被捕获的异常,并执行统一的...

    .net打包自动安装数据库

    8. **错误处理和日志记录**:为了调试和提供良好的用户体验,你应该在执行SQL脚本时捕获并处理可能的异常,并考虑记录安装日志,以便于排查问题。 通过以上步骤,你可以使用.NET创建一个能够自动安装数据库的打包...

    excle中数据导入到sql数据库(asp.net)

    6. **错误处理**:在整个过程中,需要捕获并处理可能出现的异常,如文件不存在、格式错误、数据库连接问题等。ASP.NET提供了丰富的错误处理机制,包括Try-Catch块和全局错误处理。 7. **性能优化**:考虑到可能存在...

Global site tag (gtag.js) - Google Analytics