【发布时间】:2012-10-29 12:42:27
【问题描述】:
我对以下方法的设计感到困惑:
Map<String, BigDecimal> foo(Parameter p){ ... }
此方法采用复杂的Parameter 并返回地图名称 -> 值。在许多情况下,基于参数的某些基础计算,生成的地图将是相同的,此外,只有少数不同的地图可以返回,因此这些地图将被缓存。但是,最初创建地图时,可能存在不同类型的错误 - 某些字符串值可能不正确,某些值可能
【问题讨论】:
-
同样缓存异常,并在调用 foo() 时抛出它。
-
缓存异常是什么意思?我想返回正确的结果,以便处理它们。如果我抛出异常,那么调用者方法将无法做到这一点
-
我不确定我是否明白这一点。如果生成了结果,我认为调用者没有理由知道已经处理了一个内部异常。
-
可能没有任何“例外” - 只是要标记的东西
-
无论你称它们为“异常”还是“错误标志”,都是一样的。不过,对于非错误标志,它可能是有意义的。在这种情况下,我会有一个方法 getFlagXYZ()。
标签: java error-handling