|
Scala example source code file (actor-uncaught-exception2.scala)
The Scala actor-uncaught-exception2.scala source codeimport scala.actors.{Actor, Exit, Debug} class MyException(msg: String) extends Exception(msg) { override def fillInStackTrace() = this } object Test { case object StartError extends Actor { def act() { try { throw new MyException("I don't want to run!") } catch { case e: Throwable if (!e.isInstanceOf[scala.util.control.ControlThrowable] && !e.isInstanceOf[MyException]) => e.printStackTrace() } } } case object MessageError extends Actor { def act() { try { react { case _ => throw new MyException("No message for me!") } } catch { case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => e.printStackTrace() } } } case object Supervisor extends Actor { def act() { try { trapExit = true link(StartError) link(MessageError) StartError.start() MessageError.start() Actor.loop { react { case Exit(actor, reason) => println(reason) if (actor == StartError) MessageError ! 'ping else exit() } } } catch { case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => e.printStackTrace() } } } def main(args: Array[String]) { Supervisor.start() } } Other Scala examples (source code examples)Here is a short list of links related to this Scala actor-uncaught-exception2.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.