3

在下面的程序中,有时我得到以下输出:

Number Format Execption For input string: "abc"
123

有时:

123
Number Format Execption For input string: "abc"

在 try/catch 块之间或 System.out 和 System.err 之间是否有任何优先级?

随机输出的原因是什么?

代码:

String str1 = "abc";
String str2 = "123";

     try{
         int firstInteger = Integer.parseInt(str1);
         System.out.println(firstInteger);
     }
     catch(NumberFormatException e){
         System.err.println("Number Format Execption " + e.getMessage());
     }

       try{
         int SecondInteger = Integer.parseInt(str2);
         System.out.println(SecondInteger);
         }
     catch(NumberFormatException e){
         System.err.println("Number Format Execption " + e.getMessage());
     }
4

2 回答 2

12

它与 try/catch 无关,也与您写入 System.out 和 System.err 的一切有关;它们是两个不同的流,当它们被写入控制台时,您无法控制它们的交错顺序。

于 2012-05-03T18:33:20.797 回答
0

尝试显式刷新流,

System.out.flush();
System.err.flush();
于 2012-05-03T18:43:45.633 回答