2015-06-08 51 views
-2

我试图删除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.

+0

消息提示您正在使用的删除不会抛出IOException.'' datei'的类型是什么?如果不知道这一点,并且知道你正在调用什么特定的'delete()'方法,那么很难确切地说出发生了什么。 – knolleary

回答

1

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

+0

谢谢,那么我应该删除整个try&catch? –

+0

我假设如此。就像我说的,如果'delete()'抛出任何异常,那么你将得到一个编译时错误,直到你处理它抛出的任何异常。先尝试删除try catch块并编译应用程序以查看该delete()方法是否抛出任何东西。 – arjabbar

+0

@arjabbar这是不正确的....由于datei [i]可能为空,并且对null调用delete()会引发NullPointerException。 – Rajesh

0

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

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