Scala – Throw Custom Exception

exceptionscala

I'm trying to throw a custom exception.

The implementation of the custom exception class is:

case class customException(smth:String)  extends Exception

In my code I wrapped a piece of code that I'm sure throws throw an exception with try/catch to throw my customException.

try{
    val stateCapitals = Map(
      "Alabama" -> "Montgomery",
      "Alaska" -> "Juneau",
      "Wyoming" -> "Cheyenne")

    println("Alabama: " + stateCapitals.get("AlabamaA").get)
}
catch{
    case x:Exception=>throw classOf[CustomException]
}

I got a compilation error that says :

        found   : java.lang.Class[CustomException]
[INFO]  required:    java.lang.Throwable 
[INFO]       case x:Exception=>throw classOf[CustomException]

How could I throw my own custom exception on this case?
Later I'm checking if the thrown exception is of a type[x] to do something specific.

Best Answer

You're not throwing an exception, but the class of an exception (just read the compiler error message...). You have to throw an exception instance.

case x:Exception => throw new CustomException("whatever")