У меня есть следующий код:
try {
< ... some JSON parsing code .. >
}
catch {
case e:ClassCastException => throw new ParseException(body, e)
case e:JSONException => throw new ParseException(body, e)
}
Это кажется чересчур повторяющимся. Я попробовал
case e:ClassCastException | e:JSONException => throw new ParseException(body, e)
но Scala не позволит мне привязать e
к обоим типам - достаточно справедливо. В обработчике мне нужно только обрабатывать e
, как если бы это был тип Exception
, но я хочу только совпадение, если это один из этих конкретных классов. Что-то вроде состояния после совпадающего типа, например:
case e:Exception(ClassCastException|JSONException) => throw new ParseException(body, e)
Это явно не правильный синтаксис, но, надеюсь, вы понимаете, что я имею в виду. Возможно ли это?