fork download
  1. object Main extends App {
  2. val squareRoot = new PartialFunction[Double, Double] {
  3. override def apply(x: Double) = if (x < 0) throw new Exception("bad input") else Math.sqrt(x)
  4. override def isDefinedAt(x: Double) = x >= 0.0
  5. }
  6.  
  7. println(squareRoot.isDefinedAt(1.0))
  8. println(squareRoot.isDefinedAt(-1.0))
  9. println(squareRoot(1.0))
  10. println(squareRoot(-1.0))
  11. }
Runtime error #stdin #stdout #stderr 0.36s 322496KB
stdin
Standard input is empty
stdout
true
false
1.0
stderr
Exception in thread "main" java.lang.Exception: bad input
	at Main$$anon$1.apply$mcDD$sp(Main.scala:3)
	at Main$.delayedEndpoint$Main$1(Main.scala:10)
	at Main$delayedInit$body.apply(Main.scala:1)
	at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
	at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
	at scala.App$$anonfun$main$1.apply(App.scala:76)
	at scala.App$$anonfun$main$1.apply(App.scala:76)
	at scala.collection.immutable.List.foreach(List.scala:381)
	at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
	at scala.App$class.main(App.scala:76)
	at Main$.main(Main.scala:1)
	at Main.main(Main.scala)