Java 方法编译给出;“缺少返回语句”;错误

Java 方法编译给出;“缺少返回语句”;错误,java,Java,这种方法有什么问题? 这不会编译。 给出一个错误,如:rs可能未初始化 如果我在try块中使用“ResultSet rs”,那么错误是:变量rs未找到 若return语句也在try块中,那个么错误是:缺少return语句。 我不知道我做错了什么。 请帮助修复此错误。 谢谢 若要继续,请将此添加为方法的最后一行: return null; 至少,您可以开始调试(可能需要大量调试)。一般来说,获取和释放资源的模式是: Resource res = acquire(); try { use(

这种方法有什么问题? 这不会编译。 给出一个错误,如:rs可能未初始化 如果我在try块中使用“ResultSet rs”,那么错误是:变量rs未找到 若return语句也在try块中,那个么错误是:缺少return语句。 我不知道我做错了什么。 请帮助修复此错误。 谢谢


若要继续,请将此添加为方法的最后一行:

return null;

至少,您可以开始调试(可能需要大量调试)。

一般来说,获取和释放资源的模式是:

Resource res = acquire();
try {
    use(res);
} finally {
    res.release();
}
或者在Java SE 7中:

try (Resource res = acquire()) {
    use(res);
}

您不能(默认情况下)从一个方法返回一个资源,并期望它被某种魔法清理掉。您可能想了解一下“执行周围”习惯用法,不过首先最好更好地理解基本原理

您必须为每个可能的执行路径返回一个
结果集。目前,如果
try
块成功,则不会返回任何内容。您可以将
finally
块添加到
try catch
并将
返回null在那里或
返回rs
由于未初始化,因此为空

public ResultSet mqe( String q ){
ResultSet rs;

    try{
    ...
    }catch(Exception ee){
       ee.printStackTrace(); }
       return rs;
    }finally
    {
       return rs;
    }

您是否尝试过初始化
ResultSet rs=null
?您好,谢谢!添加ResultSet rs=null和finally块有效。
public ResultSet mqe( String q ){
ResultSet rs;

    try{
    ...
    }catch(Exception ee){
       ee.printStackTrace(); }
       return rs;
    }finally
    {
       return rs;
    }