Как преобразовать String в int с проверкой на ошибку?

Как не допустить ошибки если введенная String не может быть преобразована в int.

while(true)
{
    BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
    String s = buffer.readLine();
    if (s.equals("exit"))
        break;
    int i = Integer.parseInt(s);// здесь потенциальная ошибка.
}

Ответы (2 шт):

Автор решения: Anton Shchyrov

Конечно же ловить и обрабатывать исключение

int i;
try {
 i = Integer.parseInt(s);
} catch (NumberFormatException e) {
 i = -1;
}
→ Ссылка
Автор решения: Tiarait

Смотря чего вы ожидаете от строки, если можете предположить что строка на входе будет состоять не только из цифр тогда обычно перед парсингом убирается мусор из строки, например все символы кроме цифр

  String s = ".123r";
  int i;
  try {
   i = Integer.parseInt(s.replaceAll("[^\\d]", ""));
  } catch (NumberFormatException e) {
   i = -1;
  }

Работает только для положительных чисел

Или .replaceAll("[^\\d\\-]+", "") - заменяет все кроме цифр и - работает если минус стоит перед цифрой

Если спарсить не удалось - получим NumberFormatException

→ Ссылка