Le jeu. 1 juil. 2021 à 02:27, Torsten Curdt <tcu...@vafer.org> a écrit : > > > > > "If there is runtime exception there is a bug in the code" > > > > I don't think that's correct because IllegalArgumentException is a > > RuntimeException. > > > I have a hard time following that causality. The way I've seen this > exception used mainly is in case of program errors, not in case of input > validations. Similar to > > > https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalStateException.html > > It's interesting that the IllegalArgumentException from the java API is > meant to prove a point while the ones I referenced didn't seem to count ;)
I'm not sure what you refer to exactly, but I noted already that not all references are equal, especially if you quote design decisions that date back from the early Java days (when every textbook touted checked exceptions as _the_ solution to robust programming). From[1] J. Bloch's "Effective Java" (3rd ed.): ---CUT--- Item 71 : Avoid unnecessary use of checked exceptions Methods throwing checked exceptions can’t be used directly in streams. An unchecked exception use is appropriate unless both of these conditions are met : * The exceptional condition cannot be prevented by proper use of the API * The programmer using the API can take some useful action once confronted with the exception Ask yourself how the programmer will handle the exception ? If the programmer can’t do better than e.printStackTrace() or throw new AssertionError(), then, an unchecked exception is called for. ---CUT--- Case discussed here obviously fails the first condition: Passing a non-corrupt archive would not trigger an exception.[2] In my view of what is "recoverable", the second condition also fails (but YMMV): If the library throws an exception because it cannot make sense of the archive, the caller still has no clue how to recover (except trying again by assuming that the error will automagically fix itself). Gilles [1] Copied from https://ahdak.github.io/blog/effective-java-part-9/ (contains more items about exception handling). [2] Unless there is a bug in [Compress], which also mandates a runtime exception (to be reported here in order to be fixed). --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org