我正在关注发生count
的数量,exceptions
并记录这些exceptions
。所以我所做的是,我创建了一种方法addException
来计算所有异常。
addException
方法将接受两个参数,one is the String
和 otherboolean flag
表示我们是否要因为任何异常而终止程序。意思是,如果该标志为真,那么只要有任何异常,我都需要终止程序。
因此,如果您查看我的下面的catch
块,我有addException
用于计算异常的方法调用,并且在该方法调用下面我也在记录异常。
catch (ClassNotFoundException e) {
addException(e.getCause() != null ? e.getCause().toString() : e.toString(), Read.flagTerminate);
LOG.error("Threw a ClassNotFoundException in " + getClass().getSimpleName(), e);
} catch (SQLException e) {
addException(e.getCause() != null ? e.getCause().toString() : e.toString(), Read.flagTerminate);
//DAMN! I'm not....
LOG.error("Threw a SQLException while making connection to database in " + getClass().getSimpleName(), e);
}
/**
* A simple method that will add the count of exceptions and name of
* exception to a map
*
* @param cause
* @param flagTerminate
*/
private static void addException(String cause, boolean flagTerminate) {
AtomicInteger count = exceptionMap.get(cause);
if (count == null) {
count = new AtomicInteger();
AtomicInteger curCount = exceptionMap.putIfAbsent(cause, count);
if (curCount != null) {
count = curCount;
}
}
count.incrementAndGet();
if(flagTerminate) {
System.exit(1);
}
}
问题陈述:-
现在我正在寻找的是-
有没有更清洁的方法来做同样的事情?意思是现在我正在计算方法中的异常,然后在 catch 块内的下一行打印出异常。
是否可以用同一种方法来做这两件事addException
?如果标志为真以终止程序,则也使用适当的日志记录终止程序。
重写addException method
来做到这一点的最佳方法是什么?谢谢您的帮助。