Какие проблемы могут возникнуть, если выбрасывать проверенное исключение как 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 правильную идиому для использования?

Ответы на вопрос(6)

Ваш ответ на вопрос