使用此代码:
class SimpleException extends Exception {}
public class SimpleExceptionDemo {
public void f() throws SimpleException {
System.out.println("Throw SimpleException from f()");
throw new SimpleException();
}
public static void main(String[] args) {
SimpleExceptionDemo sed = new SimpleExceptionDemo();
try {
sed.f();
} catch(SimpleException e) {
System.err.println("Caught it!");
}
}
}
在某些情况下,我有此输出:
Caught it!
Throw SimpleException from f()
您知道为什么在“抓到它”之后打印“从f()抛出SimpleException”吗?
最佳答案
您正在两种不同的输出流上进行打印:
System.out.println("Throw SimpleException from f()");
和
System.err.println("Caught it!");
不能保证两个不同流中出现的消息顺序...使用相同的流,就可以了。
如果您对此类问题感兴趣,请继续阅读