我每个月必须浏览一次包含 150,000 多件元素的 Collection ,所有发生的事情大约需要 3 到 4 个小时,这很好。问题是有时一些数据会抛出一个exception
(这在我的第一次测试运行中当然没有发生,直到 item 148,000)。我只是将它设置为逻辑上忽略异常(当然记录它),但我意识到我并不总是想简单地忽略异常。
我写了一个简单的异常处理程序来处理不同类型的异常,以及如果发生某种类型的异常该怎么办;例如,如果我收到 SQLException
,我会中止进程,但如果收到 NullPointerException
,我会继续,因为这通常是数据问题。我还跟踪异常总数,如果达到预设限制,我也会终止进程。
所以我的问题是:我将构建更多这样的程序来处理Collections
中的不同类型的数据。是否有处理集合和处理不同类型异常的库?
下面是我根据评论请求添加的一些代码。如果您在想,“好吧,这就是您想要它做的,问题是什么?”,您是对的。但是我想知道是否存在一个库可以让我注册异常以及遇到时该怎么做。比如我想当A或D类型的异常发生时停止处理,B发生时继续处理,除非发生X次,C发生时继续处理,除非发生Y次,完全忽略E。主要是因为我知道我有不同的数据集和集合
,我和其他人将来会使用这些数据集和集合
,并且希望使用一致的东西。
基本代码片段:
exeptionLimit = 50;
exceptionCount = 0;
for (long id : MyCollection)
{
try
{
//All these methods throw the exceptions
Item item = getItemById(id);
NewData data = ProcessItem(item);
SaveNewData(data);
}
catch (SQLException e)
{
//log
throw e; //I want this to cause the process to fail
}
catch (NullPointerException e)
{
//log
exceptionCount++;
if (exceptionCount >= exceptionLimit) throw new Exception("Limit hit!");
}
}
最佳答案
Collection
表示数据的逻辑分组和一组对数据进行操作的函数。
你可以找到提供高级数据结构和比 JDK
中提供的更好性能的库,但如果我正确理解你的问题,你需要的是理解你想要构建的逻辑的东西 在集合之上。
我的意思是,不同类型的异常之间的分离以及它们是否被记录等是您的应用程序逻辑的一部分。
它与提供该功能的集合框架无关。 关于数据的集合和辅助方法
关于java - 是否有用于集合处理的 Java 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10554370/