NonFatal - это объект scala, который определяет нефатальные ошибки.Вот определение
object NonFatal {
/**
* Returns true if the provided `Throwable` is to be considered non-fatal, or false if it is to be considered fatal
*/
def apply(t: Throwable): Boolean = t match {
// VirtualMachineError includes OutOfMemoryError and other fatal errors
case _: VirtualMachineError | _: ThreadDeath | _: InterruptedException | _: LinkageError | _: ControlThrowable => false
case _ => true
}
/**
* Returns Some(t) if NonFatal(t) == true, otherwise None
*/
def unapply(t: Throwable): Option[Throwable] = if (apply(t)) Some(t) else None
}
Значение каждого сгенерированного исключения (кроме фатальных) будет поймано в случае
case NonFatal(e) => println("I want to get to this point")
Потому что в неприменимых нефатальных исключениях есть Some (t), в то время как Fatalодин из нихСм. https://docs.scala -lang.org / tour / extractor-objects.html для справки.
Вы можете просто выбросить любое нефатальное исключение.