另一个语法错误,插入“AssignmentOperator Expression”来完成Expression

时间:2014-02-19 20:06:34

标签: java exception file-handling

这个错误遍布整个互联网,但没有一个"解释"永远解释一下,也不解决我的问题。

public Properties getProperties(String propertiesFileName)
{
    Properties prop;
    prop = new Properties();
    InputStream in = new FileInputStream(propertiesFileName);
    prop.load(in);
    in.close();
    return prop;
    IOException localIOException;
    localIOException; //THIS LINE THROWS THE ERROR
    localIOException.printStackTrace();
    return null;
}

表示" localIOException;"是错误的原因。请告诉我如何解决这个问题和/或它为什么会发生这种情况。感谢。

编辑:

看看这三行:

IOException localIOException;
localIOException;
localIOException.printStackTrace();

如果我删除中间线,我会在整个地方出错。出于原因,我不明白中间线必须在那里,但这是导致我的错误的线。

3 个答案:

答案 0 :(得分:2)

Java语言规范禁止使用与其认为的表达式不符的行。您不会在对象上调用方法或将其分配给变量,这是编译器告诉您的。

答案 1 :(得分:0)

这有效:

public Properties getProperties(String propertiesFileName)
{
    try {
        Properties prop;
        prop = new Properties();
        InputStream in = new FileInputStream(propertiesFileName);
        prop.load(in);
        in.close();
        return prop;
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        return null;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}

答案 2 :(得分:0)

如果您正在访问文件并且想要检查可能的错误(使用java异常),那么您应该使用try / catch块:

代码:

public Properties getProperties(String propertiesFileName)
{
    Properties prop;
    prop = new Properties();

    try
    {
        InputStream in = new FileInputStream(propertiesFileName);
        prop.load(in);
        in.close();
        return prop;
    }
    catch (IOException localIOException)
    {
        localIOException.printStackTrace();
        return null;
    }
}

您编写的代码等同于写:

int x;     // IOException localIOException;
x;         // localIOException; //THIS LINE THROWS THE ERROR

这就是错误的含义,变量的名称本身不是Java的表达式。