except.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 59 行

SCALA
59
字号
/* The Computer Language Shootout    http://shootout.alioth.debian.org/   contributed by Isaac Gouy (Scala novice)*/object except {   var Lo = 0;   var Hi = 0;   def main(args: Array[String]) = {      val n = toPositiveInt(args);      for (val i <- Iterator.range(0,n))          someFunction(i);      Console print("Exceptions: HI=" + Hi);      Console println(" / LO=" + Lo);   }   def blowup(n: Int) = {      if ((n % 2) == 0)         throw new LoException();      else          throw new HiException();   }   def loFunction(n: Int) = {      try { blowup(n); }       catch { case _: LoException => Lo = Lo + 1; }   }   def hiFunction(n: Int) = {      try { loFunction(n); }       catch { case _: HiException => Hi = Hi + 1; }   }   def someFunction(n: Int) = {      try { hiFunction(n); }       catch { case e: Exception =>           Console println("We shouldn't get here: " + e);      }   }   def toPositiveInt(s: Array[String]) = {      val i =          try { Integer.parseInt(s(0)); }          catch { case _ => 1 }      if (i>0) i; else 1;   }}private class LoException extends Exception {}private class HiException extends Exception {}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?