簡體   English   中英

拋出自定義異常

[英]Throw Custom Exception

我正在嘗試拋出一個自定義異常。

自定義異常 class 的實現是:

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]

我怎么能在這種情況下拋出我自己的自定義異常? 稍后我將檢查拋出的異常是否屬於 type[x] 以執行特定操作。

你不是拋出異常,而是異常的 class (只需閱讀編譯器錯誤消息......)。 你必須拋出一個異常實例。

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

更改您的異常 class 定義也將有所幫助,如下所示:

case class customException(smth:String)  extends Exception(smth)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM