Esta es una de esas cosas de Java, que después de llevar más de diez años programando no sabía.

Consiste en capturar varias excepciones que se van a gestionar de la misma manera, con una única cláusula catch.


try {
//lo que sea
} catch (IOException | NullPointerException e) {
//gestiona aquí el objeto 'e'
}