Scalaの一般的な標準例外は何ですか? 私は特に興味があります.NetのNotImplementedException
はどのように呼ばれますか?Scalaの標準例外とは何ですか?
UPDATE:NotImplementedException
についての答えは org.apache.commons.lang.NotImplementedException
Scalaの一般的な標準例外は何ですか? 私は特に興味があります.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)
}
}
}
残りはほとんどすべての角をカバーするJava、から来ています。これらのScalaのメソッドが他のプラットフォームで何を投げるのか疑問に思っています。
NotImplementedException
のようですが、現在、おそらく、Scalaの2.10のために検討されています。このthreadを参照してください。
もちろん、Scala 2.10では 'UnsupportedOperationException'が考慮されていません。これは、長い間Javaライブラリの一部となっています。スレッドはPredefにスローするコンビスメソッドを追加することです。 –
まず、UnsupportedOperationExceptionとNotImplementedExceptionはまったく異なるものを意味し、両方とも必要です(私は両方ともC#プロジェクトで積極的に使用していました)。 Scala 2.9.1では、今日は何を使うべきかという疑問がありますか?私は、クラスを定義し、メソッドを実装する前にメソッドの本体をまだ実装していないとして、新しいNotImplementedException()を使用し、何度もプロジェクトを何度もコンパイルする前に、メソッドバイステップで実装します。しかしScalaでは、いくつかのダミーデータを返すことによってすべての関数を実装する必要があるようです。これはバグを引き起こし、ちょっと迷惑です。 – Ivan
2.10から、 '???'が 'Predef'に追加されました。あなたは 'class Thing {def getThing = ??? } '。 'getThing'を呼び出すと、"実装がありません "というメッセージとともに' scala.NotImplementedError'が送出されます。 – afternoon
Javaに既に存在するデフォルトを使用できます。 ScalaはJavaの標準例外に何も追加しません。
これは、Javaで動作する場合、独自のカスタム例外やエラーをスローすることがどれほど簡単かをかなり正確に示しています。オブジェクトに1行のクラスを作成し、必要に応じて使用するだけです。 finalクラスのMyException(arg:String)は、RuntimeException()を拡張するか、java.lang.RuntimeException(msg)を指定してFatalErrorに示すように拡張します。ニースソブラル。 –