![]() |
1
3
我会说 快速而响亮地失败 . 所以在出现不一致的时候抛出一个异常(除非您想保留文件中的所有错误并将其显示给用户…在这种情况下,您需要一个基于参数的收集设计与一个基于异常的收集设计)。
|
![]() |
2
1
如果数据不可用,那么最好在读取记录时抛出异常。例如,如果您知道年龄字段中的字符数据只有在用户在应用程序外部处理文件时才可能出现。如果您试图序列化一个对象,弄乱了序列化的数据,然后试图反序列化它,就会发生这种情况。 如果要在应用程序外部操作数据,或者可以恢复某些记录或其他记录,那么最好实现某种复合“错误”集合。您不必抛出异常。您可以创建新的异常实例,并将它们放在集合中。 换句话说,只有当您希望中断当前操作,并且不希望返回部分结果时,才应该抛出异常。 |
![]() |
3
1
这取决于你的逻辑是如何建立的。如果您的文件读取逻辑是通用的(不是C通用的,从某种意义上说是非特定的通用的),那么最好将异常放在稍微高一点的位置。 例如,如果事情是这样设置的:
所有这些都归结为在哪里进行验证是合理的。作为一般规则,您应该只在异常情况下抛出异常(您无法在该特定级别恢复的情况)。调用堆栈中较高的某个方法可能知道在这种情况下该怎么做。
此外,如果您必须抛出许多不同类型的异常,作为对方法调用方(间接或直接、您或其他开发人员)的礼貌,最好使异常具有公共的基本异常(而不是
继承层次结构的一个示例可能是:
这样,如果调用者只想知道方法是否成功,那么他们只需要捕获
|
![]() |
4
1
看起来你在做一些事情:
我将验证限制在以下情况:
|
![]() |
5
0
它最适合批处理,我想说,创建一个验证和错误数据类。数据类将具有linenumber(csv linenumber)、message和if you think any properties suitale。 读取文件并将整个集合传递到验证类中,以验证和获取ErrorData类集合中的错误。 处理正确的数据并记录或抛出错误。在这里,您既要处理写数据,也要通知客户机(调用对象)存在错误。 有人可以打开日志/或错误消息来更正数据。 |