`
ybhuxiao
  • 浏览: 189842 次
  • 性别: 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
分享到:
评论

相关推荐

    mvc:快速,轻量级的php框架

    异常捕获, DEBUG日志,自定义错误页,自定义异常路由一应俱全 普通路由,正则路由,可以处理,百变URI随心所欲,插件模式,即插即用 文件加载自动完成,延迟按需加载,无需Include简单高效 安装配置 index.php入口...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--异常之UncaughtExceptionHandler全局捕获处理 |--异步任务AsyncTask的用法 |--异步任务的自定义 |--快捷方式增删查 |--手势识别器GestureDetector的用法 |--拍照之调用系统相机并显示及保存 |--拨打电话 |--按健...

    ASP.NET 2.0+SQL Server 2005全程指南-源代码

    2.6.1 用trycatch捕获异常 2.6.2 用tryfinally清除异常 2.6.3 用trycatchfinally处理所有的异常 2.7 面向对象程序设计 2.7.1 成员 2.7.2 类的可访问性 2.7.3 构造函数和析构函数 2.7.4 封装 2.7.5 继承 ...

    php网络开发完全手册

    10.2.3 异常捕获语句try-catch 156 10.2.4 异常处理函数设置set_exception 10.2.4 _handler 157 10.2.5 完整的异常信息 158 10.3 扩展的异常处理类 160 10.4 异常的传递与重掷 163 10.5 小结 165 第11章 PHP与表单 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例077 把异常与错误信息显示到窗体中 97 实例078 从字符串中分离文件路径、 文件名及扩展名 98 实例079 判断手机号的合法性 99 实例080 用字符串构建器追加字符 100 实例081 去掉字符串中的所有空格 101 实例082 ...

    ChineseFramework大型WEB应用框架程序

    以自定义异常类来捕获. 假如: YourException extends Exception 你捕获 catch( YourException ) 时如果发 生的是Exception类时, 程序就会捕捉不到.. 反之, 如果发生了YourException, 而程序捕获 的是catch...

    ActionScript开发人员指南中文版

    创建自定义错误类 响应错误事件和状态 比较错误类 处理错误示例:CustomErrors应用程序 第章:使用正则表达式 正则表达式基础知识 正则表达式语法 对字符串使用正则表达式的方法 正则表达式示例:Wiki解析程序 第章:...

    Java范例开发大全 (源程序)

     实例47 try…catch…finally捕获异常的实例 67  实例48 try…catch嵌套捕获异常的实例 68  4.4 throws声明异常 69  实例49 throws声明异常实例一 69  实例50 throws声明异常实例二 70  4.5 throw抛出...

    java范例开发大全(pdf&源码)

    实例47 try…catch…finally捕获异常的实例 67 实例48 try…catch嵌套捕获异常的实例 68 4.4 throws声明异常 69 实例49 throws声明异常实例一 69 实例50 throws声明异常实例二 70 4.5 throw抛出异常 72 实例51 throw...

    3.ASP.NET 2.0 入门经典(第4版) [压缩包1/10]

    15.2.3 如何捕获异常 526 15.2.4 记录异常 532 15.2.5 邮寄异常 535 15.2.6 引发异常 537 15.3 异常最佳实践 537 15.4 全局异常处理 538 15.5 自定义错误页面 540 15.6 调试和跟踪 542 15.6.1 使用ASP.NET...

    java范例开发大全源代码

     实例47 try…catch…finally捕获异常的实例 67  实例48 try…catch嵌套捕获异常的实例 68  4.4 throws声明异常 69  实例49 throws声明异常实例一 69  实例50 throws声明异常实例二 70  4.5 throw抛...

    java范例开发大全

    实例47 try…catch…finally捕获异常的实例 67 实例48 try…catch嵌套捕获异常的实例 68 4.4 throws声明异常 69 实例49 throws声明异常实例一 69 实例50 throws声明异常实例二 70 4.5 throw抛出异常 72 实例51 throw...

    Java范例开发大全(全书源程序)

    实例47 try…catch…finally捕获异常的实例 67 实例48 try…catch嵌套捕获异常的实例 68 4.4 throws声明异常 69 实例49 throws声明异常实例一 69 实例50 throws声明异常实例二 70 4.5 throw抛出异常 72 实例51...

    疯狂JAVA讲义

    10.2.1 使用try...catch捕获异常 359 10.2.2 异常类的继承体系 360 10.2.3 访问异常信息 363 10.2.4 使用finally回收资源 364 10.2.5 异常处理的嵌套 367 10.3 Checked异常和Runtime异常体系 367 10.3.1 使用...

    Java语言基础下载

    自定义异常 126 方法覆盖和异常 127 内容总结 129 第九章:基于文本的应用 131 学习目标 131 程序交互的几种方式 132 常用类方法说明 132 String的方法 132 正则表示式(Regular expression) 133 StringBuffer类 ...

    java面试题

    这类异常没法要求程序员去一一捕获并抛出,一般异常是Java类库或程序员自己写的代码发生的错误,这类异常可以由我们去一一捕获并抛出。 多线程几种实现方法,同步? 答:多线程有两种实现方法,一种是继承Thread类...

Global site tag (gtag.js) - Google Analytics