In a Java 7 multicatch block such as the following:
try {
// code that throws exception
} catch (CharacterCodingException | UnknownServiceException ex) {
// handle exception
}
what is the compile-time type of ex
? Is it the most derived class that both exception types have in common? In this example that would be an IOException
.
Yes, the type of ex
is the most specific supertype of both CharacterCodingException
and UnknownServiceException
, which would be IOException
.
Edit: Straight from the horse's mouth on http://cr.openjdk.java.net/~darcy/ProjectCoin/ProjectCoin-Documentation-v0.83.html#multi_catch:
Informally, the lub (least upper bound) is the most specific supertype of the types in question.