为什么没有捕获?

Why is there no catch?

我正在尝试删除 TXT 文件,但总是收到相同的错误消息。和网上找的代码差不多。

                for (int i = 0; i < datei.length; i++)
                {
                        try
                        {
                            loeschenDatei = datei[i].delete();

                            if (loeschenDatei)
                            {
                                System.out.println(datei[i] + " wurde geloescht!");
                            }
                            else 
                            {
                                System.out.println(datei[i] + " konnte nicht geloescht werden!");
                            }
                        }
                        catch (IOException ex)
                        {
                            ex.printStackTrace();
                        }

                }

我总是得到错误:

unreachable catch block for ioexception. this exception is never thrown from the try statement body.

这意味着您的 try 块中的任何内容都不会抛出 IOException 类型的异常。我唯一不确定的是 datei[i].delete()。在您的 IDE 中检查该方法签名,看看最后它是否 throws IOException 或类似的东西。如果该方法没有抛出任何东西,则完全删除您的 try catch 块。

无法访问 ioexception 的 catch 块 - 编译器代码验证表明。可能 IO 异常已经在 delete 方法中处理了。

如果您不确定您的代码可能抛出哪些异常,您可以将 IOException 更改为 Exception。