src/Pure/package.scala
author wenzelm
Mon, 04 Jul 2011 13:43:10 +0200
changeset 43650 f00da558b78e
parent 42720 caa4f1279154
child 43651 511df47bcadc
permissions -rw-r--r--
imitate exception ERROR of Isabelle/ML;

/*  Title:      Pure/package.scala
    Author:     Makarius

Toplevel isabelle package.
*/

package object isabelle
{
  object ERROR
  {
    def apply(message: String): Throwable = new RuntimeException(message)
    def unapply(exn: Throwable): Option[String] =
      exn match {
        case e: RuntimeException =>
          val msg = e.getMessage
          Some(if (msg == null) "" else msg)
        case _ => None
      }
  }
  def error(message: String): Nothing = throw ERROR(message)
}