2017-03-17 50 views
-2

我得到的錯誤是「嘗試」沒有catch塊。文件I/O是我製作的樹的一部分。我的try catch塊有什麼問題? (文件I/O)

public static void main(String args[]) 
     { 
     LinkedBSTree l = new LinkedBSTree(); 
     String fileName = "file.txt"; 

     try(BufferedReader br = new BufferedReader(new FileReader(fruitFile))){ 

      String line; 
      while ((line = br.readLine()) != null) { 
      String[] item = line.split(" "); 
      l.insert(item[0], Float.parseFloat(item[1])); 
      } 
     } catch(IOException e){ 
      e.printStackTrace(); 
     } 
     l.printInOrder(); 
     } 
+0

你正在使用哪種java編譯器? try(...)是最近的一個功能。 – Alain

+0

JDK 6.0_65是我的編譯器 – keesh334

+0

我相信在java 7中引入了資源嘗試:(使用更正式的源代碼編輯)http://docs.oracle.com/javase/7/docs/technotes/guides/language/ try-with-resources.html – Alain

回答

0

答案是您正在嘗試在Java 6編譯器中使用Java 7語言功能。 Java 7(及更高版本)「試用資源」語法不被編譯器識別,導致編譯錯誤:

解決方案:將工具鏈升級到最新的 Java版本。 (除非您有支持合同,否則不要升級到Java 7,該工具鏈也超出報廢期限。)

0

Try-with-resources:https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html是Java 7的一項新功能。您不能在JDK 6

使用它在JDK 6,你只能儘量捕:

public static void main(String args[]) 
{ 
    LinkedBSTree l = new LinkedBSTree(); 
    String fileName = "file.txt"; 

    try{ 

     BufferedReader br = new BufferedReader(new FileReader(fruitFile)); 

     String line; 
     while ((line = br.readLine()) != null) { 
      String[] item = line.split(" "); 
      l.insert(item[0], Float.parseFloat(item[1])); 
     } 
    } catch(IOException e){ 
     e.printStackTrace(); 
    } 
    l.printInOrder(); 
} 

希望這可以幫助你。