diff --git a/JSONArray.java b/JSONArray.java index d08586d..54d5183 100644 --- a/JSONArray.java +++ b/JSONArray.java @@ -1384,8 +1384,12 @@ public class JSONArray implements Iterable { writer.write('['); if (length == 1) { - JSONObject.writeValue(writer, this.myArrayList.get(0), - indentFactor, indent); + try { + JSONObject.writeValue(writer, this.myArrayList.get(0), + indentFactor, indent); + } catch (Exception e) { + throw new JSONException("Unable to write JSONArray value at index: 0", e); + } } else if (length != 0) { final int newindent = indent + indentFactor; @@ -1397,8 +1401,12 @@ public class JSONArray implements Iterable { writer.write('\n'); } JSONObject.indent(writer, newindent); - JSONObject.writeValue(writer, this.myArrayList.get(i), - indentFactor, newindent); + try { + JSONObject.writeValue(writer, this.myArrayList.get(i), + indentFactor, newindent); + } catch (Exception e) { + throw new JSONException("Unable to write JSONArray value at index: " + i, e); + } commanate = true; } if (indentFactor > 0) { diff --git a/JSONObject.java b/JSONObject.java index ff4acfa..f3e34db 100644 --- a/JSONObject.java +++ b/JSONObject.java @@ -2240,12 +2240,17 @@ public class JSONObject { if (length == 1) { final Entry entry = this.entrySet().iterator().next(); - writer.write(quote(entry.getKey())); + final String key = entry.getKey(); + writer.write(quote(key)); writer.write(':'); if (indentFactor > 0) { writer.write(' '); } - writeValue(writer, entry.getValue(), indentFactor, indent); + try{ + writeValue(writer, entry.getValue(), indentFactor, indent); + } catch (Exception e) { + throw new JSONException("Unable to write JSONObject value for key: " + key, e); + } } else if (length != 0) { final int newindent = indent + indentFactor; for (final Entry entry : this.entrySet()) { @@ -2256,12 +2261,17 @@ public class JSONObject { writer.write('\n'); } indent(writer, newindent); - writer.write(quote(entry.getKey())); + final String key = entry.getKey(); + writer.write(quote(key)); writer.write(':'); if (indentFactor > 0) { writer.write(' '); } - writeValue(writer, entry.getValue(), indentFactor, newindent); + try { + writeValue(writer, entry.getValue(), indentFactor, newindent); + } catch (Exception e) { + throw new JSONException("Unable to write JSONObject value for key: " + key, e); + } commanate = true; } if (indentFactor > 0) {