Scalaのtry catchで複数の例外をまとめてcatchしたい場合は、こんな風に書ける。
try {
// do something
} catch {
case e @ (_: IOException | _: IllegalFormatException) => { e.printStackTrace() }
case e => { throw e }
}
scala.util.Tryで似たようなことをどうするか調べようとしたのだけど、いい方法が見つからずこんな書き方になった。
scala.util.Try {
// do something
} match {
case Success(v) => { /* success */ }
case Failure(e) => {
e match {
case e @ (_: IOException | _: IllegalFormatException) => e.printStackTrace()
case e => throw e
}
}
}
まあ、いいか。