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