斯卡拉常见的标准例外是什么? 我特别感兴趣的是如何.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。 –