utiliza usos usar tag responder questions question hacer excepciones does con como scala pattern-matching

scala - usos - tag questions do does



Coincidencia de múltiples tipos de excepción para el mismo caso (1)

Cuando el patrón coincide con una excepción con una declaración de caso, ¿hay una forma más simplificada de hacer coincidir la misma excepción con un conjunto de tipos de excepción? En lugar de esto:

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

Algo como esto sería bueno:

case e: MappingException | ParseException | SomeOtherException =>

¿Es algo como esto posible?


Puedes hacerlo:

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

Si está intentando guardar algunas líneas de código y maneja regularmente los mismos tipos de excepciones, podría considerar definir una función parcial de antemano para usarla como un controlador:

val myHandler: PartialFunction[Throwable, Unit] = { case e @ (_: MappingException | _: ParseException | _: SomeOtherException) => } try { throw new MappingException("argh!") } catch myHandler