Какие проблемы могут возникнуть, если выбрасывать проверенное исключение как 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 действительно происходит, это, вероятно, ошибка в коде и должна обрабатываться обычным «глобальным обработчиком необработанных исключений»который уже там (например.это), и который уже выполняет все необходимые записи и очистки.Таким образом, я закончил делать это в вызывающем методе:
...
try {
encoded = encodeDataAsJsonString(data);
} catch (JSONException e) {
throw new RuntimeException(e);
}
...
Это казалось меньшим злом, чем добавлениеthrows JSONException
вкаждый метод до стека вызовов. Тем не менее, он все еще чувствует себя грязным, поэтому мой вопрос:
Если я хочу, чтобы какое-то определенное проверенное исключение прошло по «обычному маршруту без проверки», будет ли выбрасывать его как RuntimeException правильную идиому для использования?