Package

scala.util.control

compat

Permalink

package compat

Visibility
  1. Public
  2. All

Type Members

  1. abstract class ControlThrowable extends Throwable with control.ControlThrowable

    Permalink

    A parent class for throwable objects intended for flow control.

    A parent class for throwable objects intended for flow control.

    Instances of ControlThrowable should not normally be caught.

    As a convenience, NonFatal does not match ControlThrowable.

    import scala.util.control.{Breaks, NonFatal}, Breaks.{break, breakable}
    
    breakable {
      for (v <- values) {
        try {
          if (p(v)) break
          else ???
        } catch {
          case NonFatal(t) => log(t)  // can't catch a break
        }
      }
    }

    Suppression is disabled, because flow control should not suppress an exceptional condition. Stack traces are also disabled, allowing instances of ControlThrowable to be safely reused.

    Instances of ControlThrowable should not normally have a cause. Legacy subclasses may set a cause using initCause.

    Note

    this compat class exists so that instances of ControlThrowable can be created using the same API and with the same suppression and stack trace writability semantics across versions.

Ungrouped