Spec-Zone.ru › Scala 3.1

Класс scala.util.control.ControlThrowable

Исходный код

абстрактный класс ControlThrowable(message: String) extends Throwable

Базовый класс для исключений, предназначенных для управления потоком выполнения.

Экземпляры ControlThrowable обычно не должны перехватываться.

Для удобства, NonFatal не соответствует 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
    }
  }
}

Обработка исключений выключена, так как управление потоком не должно подавлять исключительное состояние. Также отключены трассировки стека, что позволяет безопасно повторно использовать экземпляры ControlThrowable.

У экземпляров ControlThrowable обычно не должно быть причины. В наследниках устаревшего типа причина может быть установлена с помощью initCause.

Предки
класс Throwable
тракт Serializable
класс Object
тракт Matchable
класс Any
Известные подтипы
класс NonLocalReturnControl[T]
класс ReturnThrowable[T]

Конструкторы

Исходный код
def this()

Унаследованные методы

final def addSuppressed(x$0: Throwable): Unit

Унаследован из Throwable

def fillInStackTrace(): Throwable

Унаследован из Throwable

def getCause(): Throwable

Унаследован из Throwable

def getLocalizedMessage(): String

Унаследован из Throwable

def getMessage(): String

Унаследован из Throwable

def getStackTrace(): Array[StackTraceElement]

Унаследован из Throwable

final def getSuppressed(): Array[Throwable]

Унаследован из Throwable

def initCause(x$0: Throwable): Throwable

Унаследован из Throwable

def printStackTrace(x$0: PrintWriter): Unit

Унаследовано от Throwable

def printStackTrace(x$0: PrintStream): Unit

Унаследовано от Throwable

def printStackTrace(): Unit

Унаследовано от Throwable

def setStackTrace(x$0: Array[StackTraceElement]): Unit

Унаследовано от Throwable

def toString(): String

Унаследовано от Throwable

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/util/control/ControlThrowable.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API