抛出自定义异常

时间:2011-07-16 10:14:50

标签: scala exception

我正在尝试抛出自定义异常。

自定义异常类的实现是:

case class customException(smth:String)  extends Exception

在我的代码中,我包装了一段代码,我肯定会抛出一个异常,使用try / catch来抛出我的customException。

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

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

我收到了一个编译错误:

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

我怎么能在这种情况下抛出自己的自定义异常? 后来我正在检查抛出的异常是否属于类型[x]以执行特定的操作。

2 个答案:

答案 0 :(得分:54)

您不是抛出异常,而是异常的类(只读取编译器错误消息...)。你必须抛出一个异常实例。

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

答案 1 :(得分:27)

更改Exception类定义也会有所帮助:

case class customException(smth:String)  extends Exception(smth)
相关问题