如何捕获异常并抛出不同的异常

时间:2017-10-18 02:17:41

标签: scala exception

我有一个for循环,我期待syms = pd.Series(['syms1', 'syms2']) df_trades.assign(**dict((s, houses * cars) for s in syms)) Date Computers syms1 syms2 0 2011-01-10 400 80000 80000 1 2011-01-10 500 80000 80000 2 2012-04-12 450 80000 80000 开启。我想要这个特殊的异常,在引发时抛出一个自定义异常。我目前有这个:

IndexOutOfBoundsException

但是,当运行上面的代码片段时,编译器会告诉我try { for (i <- 0 until end) { // do something } } catch { case e: IndexOutOfBoundsException => throw CustomException("Raised expected IndexOutOfBoundsException", e) } 被引发并且我的自定义异常。我需要做些什么来提高我的自定义异常?

自定义异常定义为:

IndexOutOfBoundsException

1 个答案:

答案 0 :(得分:0)

使用TryrecoverWithrecoverWith处理失败案例并进一步尝试传播新Try计算的成功或失败。

Try {
  for (i <- 0 until end) {
    // do something
  }
}.recoverWith { case e: IndexOutOfBoundsException =>
 Try.failed(CustomException("Raised expected IndexOutOfBoundsException", e))
}