Jos*_*osh 18 scala pattern-matching
当模式将异常与case语句匹配时,是否有更简单的方法将同一异常与一组异常类型匹配?而不是这个:
} catch {
case e if e.isInstanceOf[MappingException] || e.isInstanceOf[ParseException] =>
Run Code Online (Sandbox Code Playgroud)
像这样的东西会很好:
case e: MappingException | ParseException | SomeOtherException =>
Run Code Online (Sandbox Code Playgroud)
这样的事情可能吗?
Ben*_*mes 48
你可以这样做:
catch {
case e @ (_: MappingException | _: ParseException | _: SomeOtherException) =>
}
Run Code Online (Sandbox Code Playgroud)
如果您尝试保存一些代码行并定期处理相同类型的异常,则可以考虑事先定义部分函数以用作处理程序:
val myHandler: PartialFunction[Throwable, Unit] = {
case e @ (_: MappingException | _: ParseException | _: SomeOtherException) =>
}
try {
throw new MappingException("argh!")
} catch myHandler
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5467 次 |
最近记录: |