RFR: 8272998: ImageIO.read() throws incorrect exception type

Sergey Bylokhov serb at openjdk.java.net
Thu Jun 16 03:33:02 UTC 2022


On Thu, 9 Jun 2022 19:53:22 GMT, Phil Race <prr at openjdk.org> wrote:

> ImageIO.read() only documents IOException for any kind of decoding problem and since
> it is a convenience API we don't want to start requiring applications to handle other RuntimeExceptions.
> So in the unlikely case of some problem decoding using this API, wrap any RuntimeException in
> an IIOException. This will give more stable app behaviour and still report the underlying problem.

src/java.desktop/share/classes/javax/imageio/ImageIO.java line 1467:

> 1465:         try (stream) {
> 1466:             bi = reader.read(0, param);
> 1467:         } catch (RuntimeException e) {

Is that necessary to catch all possible runtime exceptions? Probably we should catch only the exceptions thrown by the read method? I think it should be "IllegalArgumentException" only, the IllegalStateException/IndexOutOfBoundsException should not be thrown here, and the IOException is fine.

-------------

PR: https://git.openjdk.org/jdk/pull/9113



More information about the client-libs-dev mailing list