我正在尝试抛出自定义异常.
自定义异常类的实现是:
case class customException(smth:String) extends Exception
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我包装了一段代码,我肯定会抛出一个异常,使用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]
}
Run Code Online (Sandbox Code Playgroud)
我收到一个编译错误,说:
found : java.lang.Class[CustomException]
[INFO] required: java.lang.Throwable
[INFO] case x:Exception=>throw classOf[CustomException]
Run Code Online (Sandbox Code Playgroud)
我怎么能在这种情况下抛出我自己的自定义异常?后来我正在检查抛出的异常是否是类型[x]来执行特定的操作.
par*_*tic 56
你不是抛出异常,而是异常的类(只读取编译器错误消息......).你必须抛出一个异常实例.
case x:Exception => throw new CustomException("whatever")
Run Code Online (Sandbox Code Playgroud)
Vla*_*lad 28
更改Exception类定义也会有所帮助,如下所示:
case class customException(smth:String) extends Exception(smth)
Run Code Online (Sandbox Code Playgroud)