Какие проблемы могут возникнуть, если выбрасывать проверенное исключение как RuntimeException?
У меня есть кусок кода, который кодирует некоторые бизнес-данные в строке JSON:
public String encodeDataAsJsonString(Data data) throws JSONException {
JSONObject o = new JSONObject();
o.put("SomeField1", data.getSomeProperty1());
o.put("SomeField2", data.getSomeProperty2());
...
return o;
}
Дело в том:
JSONException является проверенным исключением, ноЯ нея действительно знаю, как справиться с этим во время компиляции. Если JSONException действительно происходит, это 's, вероятно, ошибка в коде и должна быть обработана обычным "глобальный обработчик необработанных исключений " который уже там (например.этот), и который уже выполняет все необходимые записи и очистки.Таким образом, я закончил делать это в вызывающем методе:
...
try {
encoded = encodeDataAsJsonString(data);
} catch (JSONException e) {
throw new RuntimeException(e);
}
...
Это казалось меньшим злом, чем добавлениеthrows JSONException
вкаждый метод до стека вызовов. Тем не менее, он все еще чувствует себя грязным, поэтому мой вопрос:
Если я хочу, чтобы какое-то конкретное проверенное исключение пошло "регулярный непроверенный маршрут исключенияправильно ли использовать его как RuntimeException?