Fix initialization order error for DefaultContext
[aquarium] / src / main / scala / gr / grnet / aquarium / AquariumException.scala
index d9a9bf7..095bf38 100644 (file)
 package gr.grnet.aquarium
 
 /**
- * Should be the base of all Aquarium-related exceptions.
+ * An exception thrown from Aquarium application code.
  *
  * @author Christos KK Loverdos <loverdos@gmail.com>
  */
 
-class AquariumException(cause: Throwable, message: String) extends Exception(message, cause) {
+class AquariumException(
+    cause: Throwable,
+    message: String,
+    args: Any*
+) extends Exception(message.format(args:_*), cause) {
+
   if(message eq null) throw new IllegalArgumentException("Null message in exception")
 
   def this(cause: Throwable) = this(cause, "")
-  def this(message: String)  = this(null, message)
-  def this(message: String, cause: Throwable) = this(cause, message)
-}
 
-object AquariumException {
-  def rethrow(e: Exception): Nothing = {
-    e match {
-      case ae: AquariumException ⇒
-        throw ae
+  def this(message: String, args: Any*) = this(null: Throwable, message, args:_*)
 
-      case _ ⇒
-        throw new AquariumException(e)
-    }
-  }
+  def this(message: String, cause: Throwable) = this(cause, message)
 }