我有一个解析几个不同输入文件的 Java 程序。即使在此输入文件中发现错误,解析仍然可以继续并收集其他几个错误。所以我想做的不是抛出异常和停止解析过程,而是想将异常注册到某个地方,然后继续解析并以类似的方式收集其他几个错误,最后我想检查是否报告任何错误,并根据此失败或继续。
当然,我总是可以通过编写 ExceptionRegister 或任何类来手动执行此操作,但我想知道两件事:
1)这种方法有问题吗?你知道我想做的任何替代设计吗?
2)有这样做的标准方法吗?(例如,如果可能的话,我想使用内置功能,而不是滚动我自己的课程)
谢谢
编辑:我不知道为什么,但在我接受他的答案之前,有人刚刚删除了他的答案。无论如何,我认为简单的数据结构应该可以工作。基本上,我将编写一个异常类来收集多个错误消息。然后我将它称为 throw 方法,如果它至少注册了一条错误消息,它就会自行抛出。
EDIT2:这里有更多说明。我的问题与解析无关。解析只是一个例子,因为我的程序做了一些解析。想一想:我正在运行一个算法,如果出现错误,我可以继续该算法以收集更多错误,这样我就可以将这两个错误一起打印,而不是打印一个错误,当它修复后,打印第二个错误。