On Thu, 9 Jun 2022 19:53:22 GMT, Phil Race <[email protected]> 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