Java - incorrect error display

This is not the main problem, but I do not understand why this is happening, so I decided that I would publish it here. This is my code:

do{
    printMenu();//method to print menu
    try{
        user=input.nextInt();
    }
    catch(InputMismatchException imme)
    {
        System.err.println("Make sure to enter a number.");
        input.next();
        continue;
    }
    switchMenu(user);//method with switch method for user input
}while(1<2);

The code works fine, except for one. Error message Be sure to enter the number. sometimes displayed after the menu, sometimes before, sometimes in the middle of the menu. This is the output of the program:

1. Book a ticket
2. Cancel a ticket
3. Check how many seats left
4. Print seat map
5. Check price
6. Print ticket
7. Exit

a

1. Book a ticket
2. Cancel a ticket
3. Check how many seats left
4. Print seat map
5. Check price
6. Print ticket
7. Exit

Make sure to enter a number.//Error message after menu

asd//wrong input

Make sure to enter a number.//now error message displays before menu

1. Book a ticket
2. Cancel a ticket
3. Check how many seats left
4. Print seat map
5. Check price
6. Print ticket
7. Exit

asd

1. Book a ticket
2. Cancel a ticket
3. Check how many seats left
Make sure to enter a number.//in the middle now???
4. Print seat map
5. Check price
6. Print ticket
7. Exit

I use Eclipse if that matters. I know this is not a big problem, but I am curious why this is happening.

+4
source share
2 answers

, System.out System.err - , (.. ) .

, , System.out System.err, , System.out System.err, .

, , , flush() , , , Eclipse .

, Eclipse (.. , System.err ), IMHO .

+2

System.err System.out PrintStream . , ( ).

, , PrintStream (System.err, System.out PrintStream).

+1

Source: https://habr.com/ru/post/1584590/


All Articles