In einer Java-7 multicatch-block, was ist der Typ der Ausnahme gefangen?

In einer Java-7 multicatch block wie die folgenden:

try {
    //code that throws exception
} catch (CharacterCodingException | UnknownServiceException ex) {
    //handle exception
}

was ist der compile-Zeit-Typ von ex? Ist es die am meisten abgeleitete Klasse, die beiden Ausnahme-Typen gemeinsam? In diesem Beispiel wäre das eine IOException.

  • würde es Sinn machen, werden jeweils geworfen, aber Sie können leicht überprüfen, indem Sie drucken aus ex.getClass()
  • Wenn Sie brauchen, um das unterschiedliche Verhalten basiert auf dem, was die Ausnahme gefangen ist, dann sollte man sich nicht mit einem multicatch-block - brechen Sie aus in mehrere catch-Blöcke.
  • ist eine compile-time-Konzept, Sie reden von der Laufzeit-Klasse des Objekts.
  • Ich würde gerne wissen, compile-Zeit-Typ von ex, nicht der Typ zur Laufzeit.
  • Ich will nicht anders Verhalten; ich würde nur gerne wissen, der Typ der Ausnahme.
InformationsquelleAutor Andrew | 2011-12-05
Schreibe einen Kommentar