2011-10-12 7 views

答えて

7

ほとんど何も:

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のメソッドが他のプラットフォームで何を投げるのか疑問に思っています。

+0

これは、Javaで動作する場合、独自のカスタム例外やエラーをスローすることがどれほど簡単かをかなり正確に示しています。オブジェクトに1行のクラスを作成し、必要に応じて使用するだけです。 finalクラスのMyException(arg:String)は、RuntimeException()を拡張するか、java.lang.RuntimeException(msg)を指定してFatalErrorに示すように拡張します。ニースソブラル。 –

2

NotImplementedExceptionのようですが、現在、おそらく、Scalaの2.10のために検討されています。このthreadを参照してください。

+1

もちろん、Scala 2.10では 'UnsupportedOperationException'が考慮されていません。これは、長い間Javaライブラリの一部となっています。スレッドはPredefにスローするコンビスメソッドを追加することです。 –

+1

まず、UnsupportedOperationExceptionとNotImplementedExceptionはまったく異なるものを意味し、両方とも必要です(私は両方ともC#プロジェクトで積極的に使用していました)。 Scala 2.9.1では、今日は何を使うべきかという疑問がありますか?私は、クラスを定義し、メソッドを実装する前にメソッドの本体をまだ実装していないとして、新しいNotImplementedException()を使用し、何度もプロジェクトを何度もコンパイルする前に、メソッドバイステップで実装します。しかしScalaでは、いくつかのダミーデータを返すことによってすべての関数を実装する必要があるようです。これはバグを引き起こし、ちょっと迷惑です。 – Ivan

+0

2.10から、 '???'が 'Predef'に追加されました。あなたは 'class Thing {def getThing = ??? } '。 'getThing'を呼び出すと、"実装がありません "というメッセージとともに' scala.NotImplementedError'が送出されます。 – afternoon

2

Javaに既に存在するデフォルトを使用できます。 ScalaはJavaの標準例外に何も追加しません。

関連する問題