Мой код застревает в блоке catch

Я должен записывать числа из одного файла в другой. И в процессе мой код застревает в блоке catch

    BufferedReader bR = new BufferedReader(new FileReader(fileName1));
    BufferedWriter bW = new BufferedWriter(new FileWriter(fileName2));

    List<Character> list = new ArrayList<>();
    String word = "";

    while (bR.ready()) {
        int data = bR.read();
        char c = (char) data;
        if (c == ' ') {
            for (Character character : list) {
                word += character;
            }

            list.clear();

            try{
                int i = Integer.parseInt(word);
                System.out.println(i);
                bW.write(i);
                bW.write(" ");
                word = null;
            } catch(Exception e){
                continue;
            }

        } else{
            list.add(c);
        }
    }

    bR.close();
    bW.close();
}

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

Автор решения: Vdovin Daniil

Рекомендую заменить функцию Integer.parseInt(); на Integer.tryParse(word,0);

public int tryParse(String value, int defaultVal) {
    try {
        return Integer.parseInt(value);
    } catch (NumberFormatException e) {
        return defaultVal;
    }
}

В блоке catch выводите сообщение ошибки e.printStackTrace(); или же так System.out.println(e.toString()); ну и еще один вариант более краткого отображения System.out.println(e.getMessage());

В итоге ваш catch должен выглядеть так

catch(Exception e){
   e.printStackTrace();
   continue;
}

В таком случае вы сможете узнать причину.

Вы кончено можете просто пропустить ошибку с помощью continue но не стоит этого делать, лучше разобраться в ее причинах и создать соответствующий код для решения проблемы, во время чтения вы встретили неверные значения, уведомите об этом пользователя. И попросите исправить либо если логика позволяет исправьте самостоятельно.

→ Ссылка
Автор решения: dmtr
int i = Integer.parseInt(word);

Уверен, что тут вы в int пытаетесь положить строку, которая содержит не только числа, например, в строке появляются переносы строки или еще что-то. Поэтому у вас возбуждается исключение и вы постоянно попадаете в блок catch.

→ Ссылка