All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scala.util.control.Breaks.scala Maven / Gradle / Ivy

/*                     __                                               *\
**     ________ ___   / /  ___     Scala API                            **
**    / __/ __// _ | / /  / _ |    (c) 2003-2010, LAMP/EPFL             **
**  __\ \/ /__/ __ |/ /__/ __ |    http://scala-lang.org/               **
** /____/\___/_/ |_/____/_/ | |                                         **
**                          |/                                          **
\*                                                                      */



package scala.util.control

/** A class that can be instantiated for the break control abstraction.
 *  Example usage:
 *
 *  val mybreaks = new Breaks
 *  import mybreaks.{break, breakable}
 *
 *  breakable {
 *    for (...) {
 *      if (...) break
 *    }
 *  }
* * Calls to break from one instantiation of Breaks will never * target breakable objects of some other instantion. */ class Breaks { private val breakException = new BreakControl /** A block from which one can exit with a `break''. */ def breakable(op: => Unit) { try { op } catch { case ex: BreakControl => if (ex ne breakException) throw ex } } /* Break from dynamically closest enclosing breakable block * @note this might be different than the statically closest enclosing * block! */ def break { throw breakException } } /** An object that can be used for the break control abstraction. * Example usage:
 *
 *  import Breaks.{break, breakable}
 *
 *  breakable {
 *    for (...) {
 *      if (...) break
 *    }
 *  }
* */ object Breaks extends Breaks private class BreakControl extends ControlThrowable




© 2015 - 2025 Weber Informatics LLC | Privacy Policy