Когда я запустил эту программу в Java
package test;
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println("line"+i);
}
System.out.flush();
int x=1/0;
}
}
я ожидал, что будет иметь следующий вывод:
line0
line1
line2
line3
line4
Exception in thread "main" java.lang.ArithmeticException: / by zero
at test.Main.main(Main.java:8)
Process finished with exit code 1
, но вместо этого вывод выглядел так:
Exception in thread "main" java.lang.ArithmeticException: / by zero
line0
at test.Main.main(Main.java:8)
line1
line2
line3
line4
Process finished with exit code 1
и после того, как я запустил его снова:
line0
Exception in thread "main" java.lang.ArithmeticException: / by zero
line1
at test.Main.main(Main.java:9)
line2
line3
line4
Process finished with exit code 1
и так далее.Строки или сообщение об исключении смешиваются с выводом случайным образом.Я пытался поставить System.out.flush();
перед int x=1/0;
, но это не помогло.Это также произошло, когда я сделал свое собственное исключение (оно расширило RuntimeException) и когда я создал NullPointerException.Почему это происходит и как я могу это исправить?