gpt4 book ai didi

scala - 将多个异常类型匹配到同一案例

转载 作者:行者123 更新时间:2023-12-03 11:05:05 25 4
gpt4 key购买 nike

当使用case语句对异常进行模式匹配时,是否存在将同一异常与一组异常类型进行匹配的更简化的方法?代替这个:

} catch {
case e if e.isInstanceOf[MappingException] || e.isInstanceOf[ParseException] =>

这样的事情会很好:
case e: MappingException | ParseException | SomeOtherException =>

这样的事情可能吗?

最佳答案

你可以这样做:

catch {
case e @ (_: MappingException | _: ParseException | _: SomeOtherException) =>
}

如果您要保存一些代码行并定期处理相同类型的异常,则可以考虑预先定义一个部分函数以用作处理程序:
val myHandler: PartialFunction[Throwable, Unit] = {
case e @ (_: MappingException | _: ParseException | _: SomeOtherException) =>
}

try {
throw new MappingException("argh!")
} catch myHandler

关于scala - 将多个异常类型匹配到同一案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8481846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com