Уcловие: (Decorator (декоратор)) Измени класс TxtInputStream так, чтобы он работал только с txt-файлами (*.txt). Например, first.txt или name.1.part3.txt. Если передан не txt-файл, например, file.txt.exe, то конструктор должен выбрасывать исключение UnsupportedFileNameException. Подумай, что еще нужно сделать, в случае выброшенного исключения. !!!!!!Помогите понять, как работает логика проверки файла на формат, если мы сначала ЗАПУСКАЕМ конструктор родительского класса, а только ПОТОМ делаем проверку. Где логика?
public class TxtInputStream extends FileInputStream {

    public TxtInputStream(String fileName) throws IOException, UnsupportedFileNameException {
        super(fileName);
        if (!fileName.endsWith(".txt")) {
            super.close();
            throw new UnsupportedFileNameException();
        }
    }

    public static void main(String[] args) {
    }
}