我正在尝试抛出自定义异常。
自定义异常类的实现是:
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]以执行特定的操作。
答案 0 :(得分:54)
您不是抛出异常,而是异常的类(只读取编译器错误消息...)。你必须抛出一个异常实例。
case x:Exception => throw new CustomException("whatever")
答案 1 :(得分:27)
更改Exception类定义也会有所帮助:
case class customException(smth:String) extends Exception(smth)