如何在javafx中捕获IOException

时间:2017-07-07 18:12:43

标签: java javafx filewriter file-writing

我正在尝试通过按JavaFx中的按钮将数据写入文本文件。唯一的问题是,当我尝试在我的按钮处理方法中使用语句“throws IOException”时,事情似乎不起作用。这是我的代码。

axis=3

我试图在网上找到答案,但是我被教导处理按钮按下的方式与大多数其他示例(显示(this :: processButtonPress))不同。我不确定使用try / catch语句会对我有所帮助,因为我对这些没有任何经验,请原谅我。我特别得到的错误是“错误:方法引用中不兼容的抛出类型IOException”。谢谢你的帮助。

我试图在主题上提出这个问题并且很容易解决。如果有任何明显的问题,请告诉我。

2 个答案:

答案 0 :(得分:2)

我建议您使用try-with-resources statement自动关闭作家。

你也可以实现这样的动作处理程序:

write.setOnAction(event -> {
    if (event.getSource() == write) {
        try {
            try (FileWriter fw = new FileWriter(records)) {
                //On button press write to file
                fw.write("Testing file writing");
            }
        } catch (IOException e) {
            // TODO process the exception properly
            e.printStackTrace();
        }
    }
});

答案 1 :(得分:1)

您绝对需要使用try / catch语句来捕获异常。

如果您更新我显示的方法,您将捕获异常。

然后,您需要添加代码来处理异常,因此程序将继续成功。

    public void processButtonPress(ActionEvent event) {
        if (event.getSource() == write) {
            try {
                // On button press write to file
                fw.write("Testing file writing");
                // Close filewriter
                fw.close();
            } catch (IOException e) {
                e.printStackTrace();

                // Code to handle goes here...
            }
        }
    }