Есть вот такой код
public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        Map<Integer,String> map=new HashMap<Integer,String>();
        try{
        while(true){
            Integer id = Integer.parseInt(reader.readLine());
            String name = reader.readLine();
            map.put(id, name);
            if(name.equals(""))throw new Exception();
        }
        }
        catch(Exception e){
            for (Map.Entry<Integer, String> pair : map.entrySet()) {
            int key = pair.getKey();
            String name = pair.getValue();
            System.out.println("Id=" + key + " Name=" + name);
            }
    }
}
Работает код в общем то идеально, все четко и по делу. Но есть одно большое НО. Компилятор выдает ошибку по поводу незакрытого бесконечного цикла. Хотя все обернуто в блок трай кэтч и в любой ситуации кэтч перехватывает ошибку и выводить мапу с введенными данными. Я понимаю, что где то тут зарыт косяк, но не могу понять где именно. И почему компилятор НетБинс прекрасно выполняет код, а компилятор на сайте не хочет?)я так понимаю, что есть какая то ситуация, которая может выбить мне ошибку. Но какая именно не понимаю. Раз 10-15 прогнал программу - все работает как должно.