我正在使用Spring,Hibernate和其他一些库(包括Apache log4j进行日志记录)处理大型Java Web应用程序。我的一个正在进行的项目是重写遗留区域中的大量例外(我没有写!)以提供更多明智的信息。一个典型的异常块如下所示:在Java中记录更好的异常信息
try {
//Some Hibernate business here
}
catch (Exception e) { //Yes, Exception. That's not just me being general. I find this especially frustrating.
log4j.error("Fail to XXXXXX"); //again, real
throw new MyException();
}
正如你所猜测的,这使得一些具有挑战性的日志成为可能。我正在寻找一种标准的方式来从这些例外中获得更好的信息。如果有帮助的话,他们大多会包装Hibernate调用。下面是类似一个典型的块我只是写:
try {
myList.add(((myClass) commonService.getRecordByTableId(myClass.class, ID)).toString());
} catch (ServiceException e) {
log4j.error("Failed to retrieve record from table myClass for id " + ID);
e.printStackTrace();
}
在这里,我从数据库中提取记录并将其添加到列表中。在catch块中,我记录了我认为是什么try
块正在做什么的明智信息,并打印堆栈跟踪。所以,我的问题是:为了获得更好的诊断错误信息,我还有其他事情可以/应该做些什么?
+1。如果可以的话,也会给予更多的观点。我非常厌倦了在它之前看到有几个“回声”的堆栈轨迹。 –
是的,就像我一样。令人惊讶的是,有多少“严肃”的开发者认为日志记录和重新投掷对于大多数例外来说是足够好的处理。 – Guillaume
+1,良好的通话。有很多关于这个项目发生的事情让我非常难过,我试图将它变成一个整体。 :D – andronikus