Есть ли накладные расходы в Java для использования блока try/catch, а не if block (если предположить, что вложенный код в противном случае не запрашивает)?
Например, возьмите следующие две простые реализации метода "безопасной обрезки" для строк:
public String tryTrim(String raw) {
    try {
        return raw.trim();
    } catch (Exception e) {
    }
    return null;
}
public String ifTrim(String raw) {
    if (raw == null) {
        return null;
    }
    return raw.trim();
}
Если вход raw встречается редко null,  есть ли разница в производительности между двумя методами?
Кроме того,  является хорошим шаблоном программирования для использования подхода tryTrim() для упрощения компоновки кода, особенно когда многие  if blocks проверяют редкие условия ошибки избежать, заключая код в один блок try/catch?
Например, обычный метод имеет метод с N parameters, который использует M <= N из них рядом с его началом, быстро и детерминированно, если какой-либо такой параметр является "недопустимым" (например, нулевой или пустой строка), не затрагивая остальную часть кода.
В таких случаях вместо того, чтобы писать k * M , если блоки (где k - среднее количество проверок на один параметр, например k = 2 для пустых или пустых строк), Блок  try/catch значительно сократит код, и комментарий 1-2 строки может быть использован для явного указания "нетрадиционной" логики.
Такой шаблон также ускорит этот метод, особенно если условия ошибки происходят редко, и это сделало бы это без ущерба для безопасности программы (при условии, что условия ошибки являются "нормальными", например, как в методе обработки строк, где null или пустые значения приемлемы, хотя и редко присутствуют).