2012-09-19 155 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

好的。我明白你的观点 –