多次运行异常处理Java代码时的不同输出

多次运行异常处理Java代码时的不同输出,java,exception-handling,try-catch,Java,Exception Handling,Try Catch,我知道在这个网站上有很多关于try-catch-finally块的问题。但我有一个不同的怀疑。当下面的代码运行多次时,我会得到不同的输出 我有一个非常简单的类,如下所示: Try Catch Exception Finally 2 java.lang.Exception: my exception at exceptionHandling.Practice.throwException(Practice.java:22) at exceptionHandling.Practice

我知道在这个网站上有很多关于try-catch-finally块的问题。但我有一个不同的怀疑。当下面的代码运行多次时,我会得到不同的输出

我有一个非常简单的类,如下所示:

Try
Catch Exception
Finally
2
java.lang.Exception: my exception
    at exceptionHandling.Practice.throwException(Practice.java:22)
    at exceptionHandling.Practice.getInteger(Practice.java:10)
    at exceptionHandling.Practice.main(Practice.java:4)
Practice.java

public class Practice {
    public static void main(String []args) {
         System.out.println(getInteger());
    }

    public static int getInteger() {
       try {
           System.out.println("Try");
           throwException();
           return 1;
       } catch(Exception e) {
           System.out.println("Catch Exception");
           e.printStackTrace();
           return 2;
       } finally {
            System.out.println("Finally");
      }
    }

   private static void throwException() throws Exception {
       throw new Exception("my exception");
   }
}
我第一次运行上述代码时的输出如下:

Try
Catch Exception
Finally
2
java.lang.Exception: my exception
    at exceptionHandling.Practice.throwException(Practice.java:22)
    at exceptionHandling.Practice.getInteger(Practice.java:10)
    at exceptionHandling.Practice.main(Practice.java:4)
再次运行代码时的不同输出如下所示:

Try
Catch Exception
java.lang.Exception: my exception
    at exceptionHandling.Practice.throwException(Practice.java:22)
    at exceptionHandling.Practice.getInteger(Practice.java:10)
    at exceptionHandling.Practice.main(Practice.java:4)
Finally
2

有人能解释一下这样的输出吗?

您使用不同的文件句柄。您的输出转到
System.out
e.printStackTrace()
写入
系统。err
将在不同时间刷新。

您使用不同的文件句柄。您的输出转到
System.out
e.printStackTrace()
写入
系统。err
将在不同时间刷新。

谢谢。我不知道这件事。我想知道行刑的顺序谢谢。我不知道这件事。我想找到执行的顺序