抛出自定义异常
问题描述:
我想抛出一个自定义异常。抛出自定义异常
自定义异常类的实现是:
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]来做特定的事情。
答
你不是抛出一个异常,而是抛出一个异常的类(只要阅读编译器错误信息...)。你必须抛出一个异常实例。
case x:Exception => throw new CustomException("whatever")
如果类的情况下,你不需要'new'。 –
这是我曾问过的最愚蠢的问题之一。我曾经抛出“CustomException”的问题,因为你提到了b4我使用classOf,但是我得到了我提到的同样的错误。我注意到的代码是“无论”.....我忘了传递构造函数的参数。很抱歉,因为.......“无论”:) :) – Echo
@Kim:确实。我只是想坚持实例化。 – paradigmatic