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

Reply via email to