プログラミング雑記

プログラミングの雑記です。

例外構文

object Main extends App {
  def exception(): Boolean = {
    try {
      isEven(1)
      true
    } catch {
      case ex: RuntimeException =>
        ex.printStackTrace()
        false
    } finally {
      // 誤解を防ぐため、finallyで絶対に値を返さない
    }
  }
  def isEven(n: Int): Int = {
    if (n % 2 == 0) n / 2
    else throw new RuntimeException("n must be even")
  }
}