社区
Java EE
帖子详情
Java如何记录异常到数据库(最好不用log4j)
fatso1984
2009-10-23 07:09:45
问题是这样的一个项目中,如果出现异常,就在数据库中记录该异常出现的时间和信息
别人提供了我2种方法
1.继承Exception类,之后可能出现异常的地方都抛出我这个继承了Exception的类
2.写一静态方法,每个出现异常的地方都进行捕捉,之后再捕捉到的时候调用我的方法进行数据库操作
明显第一种比第二种好,但是我知道继承Exception后就不知道怎么写下去了。。。请大家指教一下,谢谢!
...全文
1188
21
打赏
收藏
Java如何记录异常到数据库(最好不用log4j)
问题是这样的一个项目中,如果出现异常,就在数据库中记录该异常出现的时间和信息 别人提供了我2种方法 1.继承Exception类,之后可能出现异常的地方都抛出我这个继承了Exception的类 2.写一静态方法,每个出现异常的地方都进行捕捉,之后再捕捉到的时候调用我的方法进行数据库操作 明显第一种比第二种好,但是我知道继承Exception后就不知道怎么写下去了。。。请大家指教一下,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jwtigerqwe
2009-10-27
打赏
举报
回复
路过 帮顶 学习
Gkilroy
2009-10-27
打赏
举报
回复
不好意思,引用错了,应该引用 #18楼的
Gkilroy
2009-10-27
打赏
举报
回复
[Quote=引用 17 楼 gkilroy 的回复:]
楼主需要搞清楚一个问题,你既然已经决定对这些异常进行捕获了,为什么还要继续往上抛?
建议:
try{
//Exceptionable code.
} catch(Exception ex){
//你应该知道这里是什么异常吧?
Util.saveExceptionIntoDB(ex.getMessage(), new Date()); //将异常信息和时间通过工具类保存到数据库中
//如果还想继续往上抛,可以继续,但是不清楚楼为什么你还要throws
throw new SelfDefineException();
}
[/Quote]
这样也不现实吧,那你岂不是每个方法都要throws?
应该对可能产生异常的地方进行异常捕获,1+1的地方根本没必要care.
至于你说的服务器负载过高,也可以捕获.不是很明白,这也是异常?如果不是那怎么抛出来的?我倒是碰到过一次,程序总是运行出错.catch Exception根本捕获不到,最后catch throwable捕获到了,是内存溢出.这个也只能证明,outOfMemory也是一个异常对象.但负载过高也有异常对象对应吗?
Gkilroy
2009-10-26
打赏
举报
回复
楼主需要搞清楚一个问题,你既然已经决定对这些异常进行捕获了,为什么还要继续往上抛?
建议:
try{
//Exceptionable code.
} catch(Exception ex){
//你应该知道这里是什么异常吧?
Util.saveExceptionIntoDB(ex.getMessage(), new Date()); //将异常信息和时间通过工具类保存到数据库中
//如果还想继续往上抛,可以继续,但是不清楚楼为什么你还要throws
throw new SelfDefineException();
}
BearKin
2009-10-26
打赏
举报
回复
不在catch中调用在哪调用捏..?
fatso1984
2009-10-26
打赏
举报
回复
我明白你的意思..但是我现在的需求就是捕获所有异常.已知的,未知的.我不可能所有的代码中都进行try和catch,我想能不能用一种方法在抛到最后的时候,进行捕获..但是我想了很久,除非改写Exception或者Throwable,应该没有啥方法..
现在的任务就是捕获所有异常
我也是听说,一个项目中可以捕获,连服务器负载过高都可以捕获.
fatso1984
2009-10-25
打赏
举报
回复
[Quote=引用 14 楼 bearkin 的回复:]
引用 13 楼 fatso1984 的回复:
我们项目要求是记录所有异常...
。。。。。。明明能避免的异常你捕捉 会被骂的。。
[/Quote]
咱不讨论这个问题了...兄弟你能给我个切实可行的方法么?你说的方法也是在catch中调用是么?
BearKin
2009-10-25
打赏
举报
回复
[Quote=引用 13 楼 fatso1984 的回复:]
我们项目要求是记录所有异常...
[/Quote]
。。。。。。明明能避免的异常你捕捉 会被骂的。。
fatso1984
2009-10-24
打赏
举报
回复
我们项目要求是记录所有异常...
BearKin
2009-10-24
打赏
举报
回复
[Quote=引用 9 楼 fatso1984 的回复:]
自己顶一下
[/Quote]
没啥难的 首先你得有那张数据表 出异常的时候捕捉下 然后将异常信息全部入库 再抛出异常 就完事了
不过你8L的情况我需要告诉你下 有些异常可以在程序中避免 所以就不要记录了(或许说那个异常就是人为的 比如空指针) 这个你得区分好
fatso1984
2009-10-24
打赏
举报
回复
自己顶一下
BearKin
2009-10-24
打赏
举报
回复
...?啥第二个方法 记录异常就记录异常吧 问题主要是你分清楚什么异常该记录
fatso1984
2009-10-24
打赏
举报
回复
[Quote=引用 10 楼 bearkin 的回复:]
引用 9 楼 fatso1984 的回复:
自己顶一下
没啥难的 首先你得有那张数据表 出异常的时候捕捉下 然后将异常信息全部入库 再抛出异常 就完事了
不过你8L的情况我需要告诉你下 有些异常可以在程序中避免 所以就不要记录了(或许说那个异常就是人为的 比如空指针) 这个你得区分好
[/Quote]
你是说的我所说的第二种方法么?
fatso1984
2009-10-23
打赏
举报
回复
貌似我的第一种方法有些行不通,比如我自定义的一场叫AutoException但是我有一个方法
public void function() throws AutoException
{
throw new NullPointerException() ;
}
它抛出了一个NullPointerException,虽然我抛出了一个AutoException,但是因为
NullPointerException的父类是Exception而不是AutoException,所以就算AutoException
覆写任何Exception的方法都无效,因为AutoException根本不是NullPointerException的父类
所以根本不会触发到任何方法.
换句话说,一个方法中如果没有抛出和捕捉异常,但是此方法出现了一些异常,是无法捕获的,无法对未知异常进行处理,除非可以改变Exception
zl3450341
2009-10-23
打赏
举报
回复
mark
路过 学习
fatso1984
2009-10-23
打赏
举报
回复
楼上能说的具体一点么?
水中影子
2009-10-23
打赏
举报
回复
写一个方法传一个string类型的错误信息,添加到数据库
fatso1984
2009-10-23
打赏
举报
回复
我个人认为也是像三楼兄弟说的那样,构造函数加载,但是这样是否真的成立
我还想问一下2楼的兄弟,是不是用构造函数,如果不用构造函数怎样去除发这个函数?
唐华嶓
2009-10-23
打赏
举报
回复
1.继承Exception类,之后可能出现异常的地方都抛出我这个继承了Exception的类
应该就是在构造的时候要把异常写到数据库里,那就写一个方法进行数据库操作,再在构造方法中调用该方法
swandragon
2009-10-23
打赏
举报
回复
1.继承Exception类,之后可能出现异常的地方都抛出我这个继承了Exception的类
自己写一个异常类,继承Exception类
方法里面封装捕获到的异常
在写一个方法,用来向数据库中插入异常信息
加载更多回复(1)
日志框架commons-logging和
Log4j
应用
本课程主要讲解日志框架commons-logging和
Log4j
基本应用和分析,适合于所有
java
开发人员
log4j
日志存储到
数据库
公司目前在做移动支付功能,需要在系统中添加日志查询统计功能,刚开始第一个念头就是用IO流读取日志文件,然后持久化,最后在系统中查询。结果看了一些
LOG4J
的说明文档后发现,原来
LOG4J
本身就有将日志信息存入
数据库
功能,这样就大大节省了开发的时间,半天搞定。现在把方法
记录
下来,希望对有需要的朋友有所帮助。一、前提条件 系统必须是使用
LOG4J
进行日志管理,否则方法无效。 系统必...
java
中如何使用
log4j
将日志信息写入
数据库
中(转)
java
异常
及解决方案集 面对人生不得志,如何有激 5月14
java
中如何使用
log4j
将日志信息写入
数据库
中 大 | 中 | 小 20:19Heck编程杂谈 From: 本站原创 首先将
log4j
的jar包和Logging的jar包导入到你的工程中,然后在工程src目录创建一个属性文件:
log4j
.properties,也可以放...
Spring Boot配置
log4j
记录
日志
转载请注明出处:Spring Boot配置
log4j
记录
日志 我们在老的项目框架ssh,springMVC中都使用过
log4j
日志模块。 例如:
java
日志功能
log4j
模块的使用方法 Spring Boot框架也能很好的快速集成
log4j
,本篇文章
记录
如何在Spring Boot框架中使用
log4j
。 引入
log4j
依赖 在创建Spring Boot工程时,我们引入了spring-boot-st...
java
使用slf4j+
log4j
进行日志
记录
并将ERROR级别信息入库
1.maven 坐标 <!-- https://mvnrepository.com/artifact/
log4j
/
log4j
--> <dependency> <groupId>
log4j
</groupId> <artifactId>
log4j
<...
Java EE
67,513
社区成员
225,879
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章