douglascrockford/JSON-java — pull request #75 by influenza (2012-12-16 22:32:29+00:00)
Title: Please don't force the use of checked exceptions when it isn't necessary

The JSONObject class forces users to wrap even a simple put operation in
a try-catch block, despite the fact that most times the only situation
that can cause the exception to be thrown is a null key value. I have
changed this to use the standard NullPointerException in the case of
null keys, and the standard IllegalArguementException in the case of
non-finite numbers. The JSONObject class may now be used without an
excessive amount of try/catch code that is often superfluous. Take for
instance this common idiom:

JSONObject jsonObj = new JSONObject();
try {
jsonObj.put("definitelyNotNull", 123);
} catch (JSONException ex) {
/* This will never, ever occur. Yet I'm still forced to catch the
* exception.
*/
}

With this commit, the following can safely be condensed down to:

JSONObject jsonObj = new JSONObject();
jsonObj.put("definitelyNotNull", 123);