让我们说,我有一个方法,它接受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]
并让呼叫者处理这种情况?你们觉得怎么样?
答案 0 :(得分:1)
我不认为List
中不存在元素是非常特殊的,所以在这种情况下我会返回Option
。
如果您认为调用myMethod(list, id)
是list
中存在具有相应ID的元素的前提条件,则可以抛出Exception
。