Java Swing 的错误消息

Pol*_*uin 3 java swing netbeans

我有一个关于使用 Java Swing 处理错误条件的查询。

我正在使用 Netbeans 开发一个简单的 Java Swing 应用程序。它是加载一个文本文件,然后根据文本文件中找到的数字运行计算。主要的 Swing 类包含 JFrames 和 JPanels。

我将文件加载代码作为单独的类文件。它将读取的行数和数字列表返回到主 Swing 应用程序。

我意识到如果文件读取失败(即 try -> catch (Exception ex)),整个应用程序将崩溃。处理上述场景导致的错误的最佳方法是什么?也就是说,文件加载代码崩溃了,我不希望整个程序崩溃。我希望程序说文件已损坏并等待用户加载新文件。

有什么想法吗?

养乐多

ewo*_*wok 5

当您捕获异常时,运行:

JOptionPane.showMessageDialog("File is corrupted. Please select a new file.");
Run Code Online (Sandbox Code Playgroud)

然后再次显示文件对话框。

最好将此作为在文件无效时继续的循环来执行。如果存在损坏,那么与其抛出异常,不如设置一个布尔标志并在设置标志时循环。这样,当找到一个好的文件时,while 循环将终止。

例子:

public static void main(String[] args){
    boolean goodFile = false;

    while (!goodFile){
        JFileChooser chooser = new JFileChooser();
        chooser.showOpenDialog();

        goodFile = processFile(chooser.getSelectedFile());
    }
}

private boolean processFile(File file){
    //do you stuff with the file

    //return true if the processing works properly, and false otherwise    
}
Run Code Online (Sandbox Code Playgroud)

  • 一般来说,这样的事情可能是最好的选择。+1 (2认同)
  • 不需要循环。它会变得更加复杂。只是按照我的建议,只有在文件损坏时,线程才会再次调用读取模块。 (2认同)
  • 在访问文件之前,您无法知道文件是否是好文件 (2认同)