rum*_*cho 4 scala exception-handling
我有一个小型Scala程序,它从数据源中读取数据.此数据源当前是.csv文件,因此它可以包含数据不一致.
在为我的数据实现存储库模式时,我实现了一个方法,该方法将返回一个特定字段的对象,该字段应该是唯一的.但是,我不能保证它真的是唯一的,就像在.csv文件中一样,我无法以真实数据库中的方式强制执行数据质量.
因此,该方法检查存储库中是否存在具有所请求的字段值的一个或零个对象,并且这很顺利.但我不太了解Scala(或Java),我发现Java异常层次结构的图表并不是很有帮助.如果有两个对象具有相同的唯一值,那么抛出是适当的例外.我该怎么用?
om-*_*nom 11
这种情况有两个方便的例外:IllegalStateException和IllegalArgumentException.当对象内部状态处于某种非法位置(例如,你调用connect两次)时使用第一个,当有来自外部世界的数据时,使用最后一个(看起来更适合你的情况)不满足某些规定条件:例如负值,当函数应该使用零和正值时.
两者都不应该在调用者端以编程方式处理(使用try/catch) - 它们表示在程序流中非法使用api和/或逻辑错误,并且在开发期间必须修复此类错误(在您的情况下) ,他们必须通知正在传递该数据的开发人员,该特定字段必须仅包含唯一值).