为什么异常被捕获 3 次?

Why exception is caught 3 times?

我正在捕获 FileNotFoundException 并通过 log4j2 将其记录到文件中。日志语句被调用三次。我用 sysout 语句替换了 log 语句,以检查这是否打印了 3 次消息。它确实打印到控制台 3 次。为什么sysout语句或log语句被调用了3次? 下面是代码片段。

prop = new Properties();
String path ="invalid path";
try {
    FileInputStream fis = new FileInputStream(path);
} catch (FileNotFoundException e) {
    log.error("FileInputStream exception");
    System.out.println("Exception");
}

这个问题不应该放在第一位。问题根源是3class继承了一个Baseclass,Baseclass构造函数中的一个方法被调用了三次。移出这个“init”方法解决了这个问题。