java - Java编译时错误: reached end of file while parsin

public class Test{
    public static void main(String[] arg){
        System.out.println("Alexander The Great");
    }
}

在此代码中,如果删除字符串中的第一个引号,则会出现3个错误。
1.“)”预期
2.未封闭的字符串文字
3.没有声明

好的,我了解上述错误。

如果删除字符串中的第二个引号,也会出现3个错误。
1.未封闭的字符串文字
2.';'预期
3.解析时到达文件末尾

我理解1和2,但是为什么3?

大括号缺失时通常不会发生吗?但显然,我的括号数目正确。
另外,为什么第一种情况不给出错误“解析时到达文件末尾”?

附言我正在使用Java 1.6的jGrasp。

最佳答案

省略第一引号可能会使解析器有更多的工作空间,因为它将尝试将“亚历山大”作为引用。一旦到达空格,唯一合法的东西就是表达式的其余部分,但它认为它是另一个标识符。

可能正在插入奖励)尝试恢复;取决于实现。

删除最后一个引号会将解析器发送到行尾。与其尝试关闭该语句,不如让它丢失一点并旋转,并且无法恢复并命中文件末尾。

在我看来,由于Java字符串仅是单行,所以它似乎可以做很多相同的事情,并在这种情况下尝试关闭字符串和/或语句,从而更加优雅地恢复。我可能只是想念一些明显的东西。

关于java - Java编译时错误: reached end of file while parsing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8032555/

相关文章:

android - 在 Android 中初始化一个大的常量数据结构

android - Android Intent使用情况(Call_action和new_task_

java - 复选框编译错误

objective-c - 尽管导入了正确的 header ,但使用自定义类的编译器错误

php - 使用PHP的exec()函数(或类似函数),如何显示终端错误输出?

java - 编译Java项目时出错

iphone - 编译我的应用程序没有错误,但是在设备上编译时挂起

compiler-errors - nant 构建文件使用 nant 0.86 而不是 0.91 a

asp.net - 加载共享类库时出错

visual-studio-2010 - 未注册库时,无法使用引用的TLB编译.NET应用程序