抛出例外或更好地返回选项"按ID查找"方法?

时间:2015-09-09 09:32:50

标签: scala

让我们说,我有一个方法,它接受List并根据id找到一个元素。可能是这个元素可能不存在!在这种情况下该怎么办?我们应该抛出Exception还是更多地处理Option类型?

def myMethod(entries: List[MyType], id: Long): MyType = {
  val result = entries.collect { case entry if entry.id == id => entry }
  assert(...check if result is not empty....)
  result.head
}

我的论点是语句assert(....),我明确强制调用者必须处理的IllegalStateException。这是一个好习惯吗?或者我应该返回Option[MyType]并让呼叫者处理这种情况?你们觉得怎么样?

1 个答案:

答案 0 :(得分:1)

我不认为List中不存在元素是非常特殊的,所以在这种情况下我会返回Option。 如果您认为调用myMethod(list, id)list中存在具有相应ID的元素的前提条件,则可以抛出Exception