2012-09-19 153 views
-6

基本調試,我不知道如何解決這些錯誤:與Java

  1. 類或接口的預期錯誤
  2. 包不存在
  3. 找不到符號
  4. 類型的非法啓動
  5. 不能訪問的java.lang

我怎樣才能更好地理解其中我的代碼中的問題正在發生?我如何調試這些問題?

這裏是我的代碼:

import java.io.*; 

public class ResourcesTesterApp { 
    public static void main(String[] args) { 
     String s1 = readLineWithResources(); 
     String s2 = readLineWithFinally(); 
    } 

    public static String readLineWithResources() { 
     System.out.println("Starting readLineWithResources method."); 

     try (RandomAccessFile in = new RandomAccessFile("products.ran", "r")) { 
      return in.readLine(); 
     }} catch (IOException e) { 
      System.out.println(e.toString()); 
     } 
    } 

    public static String readLineWithFinally() { 
     System.out.println("Starting readLineWithFinally method."); 
     RandomAccessFile in = null; 
     String s = null; 

     try { 
      in = new RandomAccessFile("products.ran", "r"); 
      s = in.readLine(); 
     } catch (IOException e) { 
      System.out.println(e.toString()); 
     } finally { 
      if (in != null) { 
       try { 
        in.close(); 
        System.out.println("RandomAccessFile closed"); 
       } catch (IOException e) { 
        System.out.println("RandomAccessFile " + e.getMessage()); 
       } 
      } 
     } 
     return s; 
    } 
+1

你有的問題不是修復錯誤...它找到它們並縮小你的問題開始。如果調試器的輸出對您沒有幫助,我建議您逐個分開代碼以縮小範圍。如果您對重現該問題的代碼有任何疑問,請嘗試在此處發帖。否則,恐怕這個問題不適合StackOverflow。請參閱常見問題解答:http://stackoverflow.com/faq – Brad

+0

哪些行會拋出這些錯誤?此外,嘗試格式化您的代碼,使其可讀。左側間距和排列方括號非常重要。 – David

+1

嗨艾米麗。你在這個問題上得票低於你的原因是因爲你沒有表現出你試圖自己解決問題的任何跡象。將來,您應該明確指出您的問題具體是什麼,您嘗試解決問題的方法以及您認爲是錯誤的。通過這種方式,它看起來像你想要獲得知識,而不是讓某人爲你修復你的程序。=)還有其他的論壇可以提供更多的*給予codez!*種類的請求。 – asteri

回答

1
  1. 這通常意味着你的方法之外編寫代碼。
  2. 這只是表示您引用了java編譯器找不到的包。
  3. 這意味着你寫了一個不敏感的變量。
  4. 這通常意味着你沒有完成一個陳述,你開始寫下一個陳述。
  5. 我不知道這個,也許更具體?

我強烈建議你看看java教程,並按照他們的例子。 你可以在http://docs.oracle.com/javase/tutorial/

3

找到他們你的問題是如何更好地理解和調試這些錯誤。我只能說,看看實際的錯誤信息輸出,它通常會包含一個行號。現在,您可以查看特定的代碼行,並查看是否可以發現錯誤。

我不知道你的問題中的代碼格式是否來自將其粘貼到stackoverflow.com的失敗嘗試,或者如果這也是你如何使用它,但你應該正確格式化,將有助於發現問題。例如,當我直接將代碼格式化時,您可以看到一個額外的大括號。

一旦你有實際的錯誤信息和行號等,你最好的選擇是谷歌的錯誤,並試圖瞭解它的含義。一旦你精疲力盡,大道就會回到這裏,並制定一個具體的問題,準確顯示錯誤信息和你正在運行的代碼。避免將許多問題歸入您在此處完成的一個問題。

+0

好的。我明白你的觀點 –