package compat
Type Members
-
abstract
class
ControlThrowable extends Throwable with control.ControlThrowable
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 matchControlThrowable
.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 usinginitCause
.- 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.