斯卡拉常見的標準例外是什麼? 我特別感興趣的是如何.Net的NotImplementedException
等效稱爲?什麼是Scala標準例外?
UPDATE:關於NotImplementedException
答案似乎是 org.apache.commons.lang.NotImplementedException
斯卡拉常見的標準例外是什麼? 我特別感興趣的是如何.Net的NotImplementedException
等效稱爲?什麼是Scala標準例外?
UPDATE:關於NotImplementedException
答案似乎是 org.apache.commons.lang.NotImplementedException
幾乎沒有什麼:
package scala {
final class MatchError(obj: Any) extends RuntimeException
final class UninitializedError extends RuntimeException("uninitialized value")
final case class UninitializedFieldError (msg: String) extends RuntimeException(msg)
package util.regex {
class SyntaxError(e: String) extends RuntimeException(e)
}
package xml {
class BrokenException() extends java.lang.Exception
case class MalformedAttributeException(msg: String) extends RuntimeException(msg)
package dtd {
case class ValidationException(e: String) extends Exception(e)
}
package include {
class CircularIncludeException(message: String) extends XIncludeException
class UnavailableResourceException(message: String) extends XIncludeException(message)
class XIncludeException(message: String) extends Exception(message)
}
package parsing {
case class FatalError(msg: String) extends java.lang.RuntimeException(msg)
}
}
}
,其餘來自於爪哇,涵蓋幾乎所有角落。它引出了這些Scala方法在其他平臺上的投入問題,不是嗎?
的NotImplementedException
目前正在考慮斯卡拉2.10,大概。看到這個thread。
'UnsupportedOperationException'當然沒有考慮Scala 2.10。很長一段時間它一直是Java庫的一部分。該線程是關於添加一個方法,將其引發到Predef。 –
首先,UnsupportedOperationException和NotImplementedException意味着完全不同的東西,都需要(我曾經在我的C#項目中積極使用它們)。問題是今天在Scala 2.9.1中使用什麼?我用來定義一個類,然後使用「throw new NotImplementedException()」作爲尚未實現的方法體並在我實現所有內容之前多次編譯該項目,然後按方法逐個實現它。但在Scala中,似乎必須通過返回一些虛擬數據來實現所有功能 - 這可能會導致錯誤,並且只是令人討厭。 – Ivan
從2.10開始,''''已被添加到'Predef'。你現在可以編寫像'class Thing {def getThing = ??? }'。調用'getThing'會出現'scala.NotImplementedError'消息「缺少一個實現」。 – afternoon
您可以使用Java中已存在的任何默認值。 Scala並沒有真正爲Java中的標準例外添加任何東西。
這給出了一個相當公平的想法,即拋出自己的自定義異常是多麼容易,甚至如果它與Java一起工作則會出現錯誤。只需在對象中創建一行類並根據需要使用。 final類MyException(arg:String)擴展RuntimeException(),或者如在FatalError中使用java.lang.RuntimeException(msg)所看到的那樣。好的一個Sobral。 –