小编Pri*_*1me的帖子

如何从返回Int的scala中的递归函数抛出异常

我最近开始学习scala并且作为赋值的一部分,我需要编写一个具有以下要求的函数:它必须是递归的,并且在空列表的情况下抛出异常.试过这段代码,但总是抛出异常.

def max(xs: List[Int]): Int =
  if (xs.isEmpty) {
    throw new NoSuchElementException("empty list")
  } else {
    if (xs.head > max(xs.tail)) xs.head else max(xs.tail)
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑:抱歉出错,当然需要用new创建例外.但是,该函数始终失败并出现异常.尝试过require(),但它返回一个Unit类型,因此编译器说它不能放在那里.有没有一种简单的方法可以在scala中递归函数抛出异常而不解析为Try,Option等?

scala exception-handling

2
推荐指数
2
解决办法
3147
查看次数

标签 统计

exception-handling ×1

scala ×1