0
forループがあります。私はIndexOutOfBoundsException
を期待しています。この特別な例外を発生させてカスタム例外をスローする必要があります。私のカスタム例外ではなく、しかし、例外をキャッチして別の例外をスローする方法
try {
for (i <- 0 until end) {
// do something
}
} catch {
case e: IndexOutOfBoundsException =>
throw CustomException("Raised expected IndexOutOfBoundsException", e)
}
上記のスニペットが実行されると、コンパイラはIndexOutOfBoundsException
が提起されたことを私に告げると:私は現在、これを持っています。私のカスタム例外を発生させるためには何が必要でしょうか?
case class CustomException(private val message: String = "", private val cause: Throwable = None.orNull) extends Exception(message, cause)
あなたは例外をコンパイラから投稿できますか?私はこれを使って 'CusomException'を取得します。 – Shaido
@Shaido私はIndexOutOfBounds Exceptionを取得しており、カスタム例外は発生していません。 – franklin
プログラムはコードの 'catch '部分にまったく入りますか?デバッグ/プリントを試して、そうでないかどうかを確認してください。私が考えることができるのは、通常、 'new'キーワードを使って' throw new customException'ですが、それは問題ではないと思います。 – Shaido