¿Pueden haber 2 excepciones "volando" a la vez?

No.

Cuando se lanza una excepción, esta va saltando hasta que la pilla el primer catch que encuentra, momento en que deja de volar.

El catch que pilla una excepción puede hacer varias cosas:

1.   puede absorberla y se acaba el asunto

try {

    ...

    throw new Exception("error x");

   

} catch (Exception e) {

    System.err.println("aquí se captura la excepción " + e);

}

2.   puede relanzarla y la excepción sigue volando hasta que encuentre otro catch

try {

    ...

    throw new Exception("error x");

   

} catch (Exception e) {

    System.err.println("por aquí pasa la excepción " + e);

    throw e;

}

3.   puede lanzar otra excepción, perdiéndose la primera

try {

    ...

    throw new Exception("error x");

   

} catch (Exception e) {

    System.err.println("aquí se captura la excepción " + e);

    throw new Exception("error y");

}

Temas relacionados

68. Excepciones [exceptions] (concepto)